merlimat closed pull request #1230: ProxyForwardAuthDataTest shouldn't reuse 
pulsar client
URL: https://github.com/apache/incubator-pulsar/pull/1230
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyForwardAuthDataTest.java
 
b/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyForwardAuthDataTest.java
index 2309ebbf3..d4b8e4d86 100644
--- 
a/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyForwardAuthDataTest.java
+++ 
b/pulsar-proxy/src/test/java/org/apache/pulsar/proxy/server/ProxyForwardAuthDataTest.java
@@ -25,7 +25,6 @@
 
 import org.apache.bookkeeper.test.PortManager;
 import org.apache.pulsar.client.admin.PulsarAdmin;
-import org.apache.pulsar.client.api.Consumer;
 import org.apache.pulsar.client.api.ConsumerConfiguration;
 import org.apache.pulsar.client.api.ProducerConsumerBase;
 import org.apache.pulsar.client.api.PulsarClient;
@@ -48,7 +47,7 @@
     private static final Logger log = 
LoggerFactory.getLogger(ProxyForwardAuthDataTest.class);
     private int webServicePort;
     private int servicePort;
-    
+
     @BeforeMethod
     @Override
     protected void setup() throws Exception {
@@ -60,11 +59,11 @@ protected void setup() throws Exception {
         
conf.setBrokerClientAuthenticationPlugin(BasicAuthentication.class.getName());
         conf.setBrokerClientAuthenticationParameters("authParam:broker");
         conf.setAuthenticateOriginalAuthData(true);
-        
+
         Set<String> superUserRoles = new HashSet<String>();
         superUserRoles.add("admin");
         conf.setSuperUserRoles(superUserRoles);
-        
+
         Set<String> providers = new HashSet<String>();
         providers.add(BasicAuthenticationProvider.class.getName());
         conf.setAuthenticationProviders(providers);
@@ -79,9 +78,9 @@ protected void setup() throws Exception {
 
     @Override
     protected void cleanup() throws Exception {
-        super.internalCleanup();       
+        super.internalCleanup();
     }
-    
+
     @Test
     void testForwardAuthData() throws Exception {
         log.info("-- Starting {} test --", methodName);
@@ -95,15 +94,13 @@ void testForwardAuthData() throws Exception {
         String subscriptionName = "my-subscriber-name";
         String clientAuthParams = "authParam:client";
         String proxyAuthParams = "authParam:proxy";
-        
+
         admin.properties().createProperty("my-property",
                 new PropertyAdmin(Lists.newArrayList("appid1", "appid2"), 
Sets.newHashSet("use")));
         admin.namespaces().createNamespace(namespaceName);
-        
         admin.namespaces().grantPermissionOnNamespace(namespaceName, "proxy", 
Sets.newHashSet(AuthAction.consume, AuthAction.produce));
         admin.namespaces().grantPermissionOnNamespace(namespaceName, "client", 
Sets.newHashSet(AuthAction.consume, AuthAction.produce));
 
-        
         // Step 2: Run Pulsar Proxy without forwarding authData - expect 
Exception
         ProxyConfiguration proxyConfig = new ProxyConfiguration();
         proxyConfig.setAuthenticationEnabled(true);
@@ -111,35 +108,29 @@ void testForwardAuthData() throws Exception {
         proxyConfig.setServicePort(servicePort);
         proxyConfig.setWebServicePort(webServicePort);
         proxyConfig.setBrokerServiceURL("pulsar://localhost:" + BROKER_PORT);
-        
         
proxyConfig.setBrokerClientAuthenticationPlugin(BasicAuthentication.class.getName());
         proxyConfig.setBrokerClientAuthenticationParameters(proxyAuthParams);
 
         Set<String> providers = new HashSet<>();
         providers.add(BasicAuthenticationProvider.class.getName());
         proxyConfig.setAuthenticationProviders(providers);
-        ProxyService proxyService = new ProxyService(proxyConfig);
-
-        proxyService.start();
-        PulsarClient proxyClient = createPulsarClient(proxyServiceUrl, 
clientAuthParams);
-        Consumer consumer;
-        boolean exceptionOccured = false;
-        try {
-            consumer = proxyClient.subscribe(topicName, subscriptionName);
-        } catch(Exception ex) {
-            exceptionOccured  = true;
-        }         
-        Assert.assertTrue(exceptionOccured);
-        proxyService.close();
-        
+
+        try (ProxyService proxyService = new ProxyService(proxyConfig);
+             PulsarClient proxyClient = createPulsarClient(proxyServiceUrl, 
clientAuthParams)) {
+            proxyService.start();
+            proxyClient.subscribe(topicName, subscriptionName);
+            Assert.fail("Shouldn't be able to subscribe, auth required");
+        } catch (PulsarClientException.AuthorizationException e) {
+            // expected behaviour
+        }
+
         // Step 3: Create proxy with forwardAuthData enabled
         proxyConfig.setForwardAuthorizationCredentials(true);
-        proxyService = new ProxyService(proxyConfig);
-
-        proxyService.start();
-        consumer = proxyClient.subscribe(topicName, subscriptionName);   
-        Assert.assertTrue(exceptionOccured);
-        proxyService.close();
+        try (ProxyService proxyService = new ProxyService(proxyConfig);
+             PulsarClient proxyClient = createPulsarClient(proxyServiceUrl, 
clientAuthParams)) {
+            proxyService.start();
+            proxyClient.subscribe(topicName, subscriptionName).close();
+        }
     }
 
     private void createAdminClient() throws PulsarClientException {
@@ -147,9 +138,9 @@ private void createAdminClient() throws 
PulsarClientException {
         org.apache.pulsar.client.api.ClientConfiguration clientConf = new 
org.apache.pulsar.client.api.ClientConfiguration();
         clientConf.setAuthentication(BasicAuthentication.class.getName(), 
adminAuthParams);
 
-        admin = spy(new PulsarAdmin(brokerUrl, clientConf));        
+        admin = spy(new PulsarAdmin(brokerUrl, clientConf));
     }
-    
+
     private PulsarClient createPulsarClient(String proxyServiceUrl, String 
authParams) throws PulsarClientException {
         org.apache.pulsar.client.api.ClientConfiguration clientConf = new 
org.apache.pulsar.client.api.ClientConfiguration();
         clientConf.setAuthentication(BasicAuthentication.class.getName(), 
authParams);


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to