From 213b1974f874d191b88e70f0418815c7b6fdec67 Mon Sep 17 00:00:00 2001 From: technoboy Date: Mon, 9 May 2022 16:21:18 +0800 Subject: [PATCH] Fix grant all permissions but can't list topic. --- .../PulsarAuthorizationProvider.java | 2 +- .../pulsar/broker/auth/AuthorizationTest.java | 18 +++--------------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/PulsarAuthorizationProvider.java b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/PulsarAuthorizationProvider.java index 087b37345f9fb..77e7edb64d7c6 100644 --- a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/PulsarAuthorizationProvider.java +++ b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/PulsarAuthorizationProvider.java @@ -480,6 +480,7 @@ public CompletableFuture allowNamespaceOperationAsync(NamespaceName nam namespaceName, role, authData, AuthAction.packages); case GET_TOPIC: case GET_TOPICS: + case GET_BUNDLE: return allowConsumeOrProduceOpsAsync(namespaceName, role, authData); case UNSUBSCRIBE: case CLEAR_BACKLOG: @@ -488,7 +489,6 @@ public CompletableFuture allowNamespaceOperationAsync(NamespaceName nam case CREATE_TOPIC: case DELETE_TOPIC: case ADD_BUNDLE: - case GET_BUNDLE: case DELETE_BUNDLE: case GRANT_PERMISSION: case GET_PERMISSION: diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/AuthorizationTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/AuthorizationTest.java index 574e7a14c43f4..39a91f72dc742 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/AuthorizationTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/auth/AuthorizationTest.java @@ -19,7 +19,6 @@ package org.apache.pulsar.broker.auth; import static org.mockito.Mockito.when; -import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; @@ -27,7 +26,6 @@ import org.apache.pulsar.broker.authorization.AuthorizationService; import org.apache.pulsar.client.admin.PulsarAdmin; import org.apache.pulsar.client.admin.PulsarAdminBuilder; -import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.common.naming.TopicDomain; import org.apache.pulsar.common.naming.TopicName; import org.apache.pulsar.common.policies.data.AuthAction; @@ -232,7 +230,7 @@ public void simple() throws Exception { } @Test - public void testGetListWithoutGetBundleOp() throws Exception { + public void testGetListWithGetBundleOp() throws Exception { String tenant = "p1"; String namespaceV1 = "p1/global/ns1"; String namespaceV2 = "p1/ns2"; @@ -248,18 +246,8 @@ public void testGetListWithoutGetBundleOp() throws Exception { .authentication(new MockAuthentication("pass.pass2")) .build(); when(pulsar.getAdminClient()).thenReturn(admin2); - try { - admin2.topics().getList(namespaceV1, TopicDomain.non_persistent); - } catch (Exception ex) { - assertTrue(ex instanceof PulsarAdminException.NotAuthorizedException); - assertEquals(ex.getMessage(), "Unauthorized to validateNamespaceOperation for operation [GET_BUNDLE] on namespace [p1/global/ns1]"); - } - try { - admin2.topics().getList(namespaceV2, TopicDomain.non_persistent); - } catch (Exception ex) { - assertTrue(ex instanceof PulsarAdminException.NotAuthorizedException); - assertEquals(ex.getMessage(), "Unauthorized to validateNamespaceOperation for operation [GET_BUNDLE] on namespace [p1/ns2]"); - } + Assert.assertEquals(admin2.topics().getList(namespaceV1, TopicDomain.non_persistent).size(), 0); + Assert.assertEquals(admin2.topics().getList(namespaceV2, TopicDomain.non_persistent).size(), 0); } private static void waitForChange() {