[jboss-svn-commits] JBL Code SVN: r23388 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta: tests/src/org/jboss/soa/esb/listeners/message and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 9 06:40:09 EDT 2008


Author: beve
Date: 2008-10-09 06:40:09 -0400 (Thu, 09 Oct 2008)
New Revision: 23388

Modified:
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
Log:
Work for https://jira.jboss.org/jira/browse/JBESB-2105 "NPE when invoking secured service without credentials"


Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-10-09 09:58:37 UTC (rev 23387)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-10-09 10:40:09 UTC (rev 23388)
@@ -424,6 +424,10 @@
 
         			// 	get the authentication request from the message
             		byte[] encrypted = (byte[]) message.getProperties().getProperty(SecurityService.AUTH_REQUEST);
+            		if (encrypted == null)
+            		{
+            		   throw new SecurityServiceException("Missing AuthenticationRequest. Cannot be authenticated.");
+            		}
             		AuthenticationRequest authRequest = (AuthenticationRequest) PublicCryptoUtil.INSTANCE.decrypt(encrypted);
 
             		//  authenticate the caller
@@ -557,7 +561,7 @@
 						final long processTime = System.nanoTime() - actionStart;
 						serviceMessageCounter.update(new ActionStatusBean(processTime, count, message,
 							ActionStatusBean.ACTION_FAILED));
-							
+
 						if (throwRuntime)
 						{
 							throw (RuntimeException)ex ;

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java	2008-10-09 09:58:37 UTC (rev 23387)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java	2008-10-09 10:40:09 UTC (rev 23388)
@@ -475,6 +475,35 @@
         checkOrder(MockActionInfo.getDestroyList()) ;
     }
 
+    public void testSecuredServiceWithoutAutenticationRequest() throws Exception
+    {
+        final ConfigTree configTree = new ConfigTree("parent") ;
+
+        // added the security configuration
+        addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+        configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+
+        addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+        final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+        pipeline.initialise() ;
+        checkOrder(MockActionInfo.getInitialiseList()) ;
+
+        Message message = MessageFactory.getInstance().getMessage();
+
+        try
+        {
+            pipeline.process(message);
+        }
+        catch(final Exception e)
+        {
+            assertTrue(e instanceof SecurityServiceException);
+        }
+
+        pipeline.destroy() ;
+        checkOrder(MockActionInfo.getDestroyList()) ;
+    }
+
     public void testSecuredServiceWithPreExistingSecurityContext() throws Exception
     {
         final ConfigTree configTree = new ConfigTree("parent") ;
@@ -512,6 +541,8 @@
         assertTrue(result);
         assertEquals(user, MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next());
 
+        assertNull(message.getProperties().getProperty(SecurityService.CONTEXT));
+
         pipeline.destroy() ;
         checkOrder(MockActionInfo.getDestroyList()) ;
     }




More information about the jboss-svn-commits mailing list