[jboss-svn-commits] JBL Code SVN: r21176 - in labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb: services/security and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jul 22 13:35:38 EDT 2008


Author: beve
Date: 2008-07-22 13:35:38 -0400 (Tue, 22 Jul 2008)
New Revision: 21176

Modified:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java
Log:
added logout to the ActionProcessingPipeline


Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-07-22 17:35:05 UTC (rev 21175)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-07-22 17:35:38 UTC (rev 21176)
@@ -328,24 +328,20 @@
 			{
 				// if the gateway or another service passed a subject use that subject for authentication.
     			final Subject subject = (Subject) message.getAttachment().get( "Subject" );
-    			
-    			//	create a security context.
     			securityContext = new JaasSecurityContext(securityConf, subject);
     			
-    			//	authenticate the subject
 				try
 				{
 					SecurityServiceFactory.getSecurityService().authenticate(securityContext);
+    				LOGGER.info("Subject after authentication" + securityContext.getSubject());
 				} 
-				catch (LoginException e)
+				catch (final LoginException e)
 				{
-					LOGGER.error( "Loging exception : ", e);
+					LOGGER.error( "Login exception : ", e);
 					faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
 					return false;
 				}
 				
-				LOGGER.info("Subject after authentication" + securityContext.getSubject());
-				
 				PrivilegedAction<Boolean> action = new PrivilegedAction<Boolean>() 
 				{
 					public Boolean run()
@@ -353,7 +349,25 @@
 						return processPipeline(message);
 					}
 				};
-				Boolean processResult = (Boolean)Subject.doAsPrivileged(securityContext.getSubject(), action, null);
+				
+				Boolean processResult = Boolean.FALSE;
+				try
+				{
+    				processResult = (Boolean) Subject.doAsPrivileged(securityContext.getSubject(), action, null);
+				}
+				finally
+				{
+					try
+					{
+						SecurityServiceFactory.getSecurityService().logout(securityContext);
+        				LOGGER.info("Subject after logout" + securityContext.getSubject());
+					} 
+					catch (final LoginException e)
+					{
+    					LOGGER.error( "Logout exception : ", e);
+    					faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+					}
+				}
 				return processResult.booleanValue();
 			}
 			else

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java	2008-07-22 17:35:05 UTC (rev 21175)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java	2008-07-22 17:35:38 UTC (rev 21176)
@@ -115,9 +115,10 @@
         }
 	}
 
-	public void logout(SecurityContext securityContext) throws LoginException
+	public void logout(SecurityContext context) throws LoginException
 	{
-		throw new UnsupportedOperationException ("Not implemented yet!");
+		LoginContext loginContext = new LoginContext(context.getConfigInfo().getModuleName(), context.getSubject(), null, new ConfigFile());
+		loginContext.logout();
 	}
 
 }




More information about the jboss-svn-commits mailing list