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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 14 06:23:41 EDT 2008


Author: beve
Date: 2008-08-14 06:23:40 -0400 (Thu, 14 Aug 2008)
New Revision: 21538

Modified:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
Log:
Added a refresh method to the SecurityService. This is so that the config can be reread.


Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java	2008-08-14 08:35:15 UTC (rev 21537)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java	2008-08-14 10:23:40 UTC (rev 21538)
@@ -81,7 +81,7 @@
 	/* 
 	 *	Original login configuration e.g JBoss AS login configuration 
 	 */
-	private javax.security.auth.login.Configuration orgConfiguration;
+	private javax.security.auth.login.Configuration containerConfig;
 	
 	/*
 	 *	Custom login configuration
@@ -118,13 +118,15 @@
 			final EsbCallbackHandler callbackHandler = createCallbackHandler(config, authRequest);
 			try
 			{
+				log.info("Configuration: " + configuration);
+				log.info("OrgConfiguration :" + containerConfig);
 				// try to login with a standalone jaas login configuration file(for example jaas.login file)
     			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, configuration);
 			}
 			catch (final LoginException ignore)
 			{
 				// fall back and try using the orginal configuration(for example jboss login-config.xml)
-    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, orgConfiguration);
+    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, containerConfig);
 			}
 			
 			//	invoke the login process 
@@ -175,13 +177,14 @@
     }
 	
 	/**
-	 * 
+	 * Configures by reading the value of the property 'org.jboss.soa.esb.services.security.configUrl'
+	 * from jbossesb-properties, is one exists.
 	 */
 	public void configure() throws ConfigurationException
 	{
 		try
 		{
-    		orgConfiguration = javax.security.auth.login.Configuration.getConfiguration();
+    		containerConfig = javax.security.auth.login.Configuration.getConfiguration();
 		}
 		catch(final SecurityException ignore)
 		{
@@ -212,6 +215,15 @@
 		throw new UnsupportedOperationException("Logout is not implemented for " + getClass().getName());
 	}
 
+	public void refreshSecurityConfig()
+	{
+		if ( configuration != null )
+		{
+			log.info("Refreshing Security configuration");
+			configuration.refresh();
+		}
+	}
+
 	/**
 	 * Creates an instance of EsbCallbackHandler specified in either jboss-esb.xml:
 	 * <pre>

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java	2008-08-14 08:35:15 UTC (rev 21537)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityService.java	2008-08-14 10:23:40 UTC (rev 21538)
@@ -77,4 +77,9 @@
 	 * @throws LoginException
 	 */
 	void logout(final SecurityConfig securityConfig);
+	
+	/**
+	 * Refresh the security configuration
+	 */
+	void refreshSecurityConfig();
 }

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java	2008-08-14 08:35:15 UTC (rev 21537)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java	2008-08-14 10:23:40 UTC (rev 21538)
@@ -37,6 +37,7 @@
 	{
 		if (instance != null)
 		{
+			instance.refreshSecurityConfig();
 			return instance;
 		}
 

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2008-08-14 08:35:15 UTC (rev 21537)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2008-08-14 10:23:40 UTC (rev 21538)
@@ -29,6 +29,8 @@
 import java.util.Set;
 
 import javax.security.auth.Subject;
+import javax.security.auth.login.AppConfigurationEntry;
+import javax.security.auth.login.Configuration;
 
 import junit.framework.JUnit4TestAdapter;
 
@@ -129,6 +131,17 @@
 		service.authenticate( configInfo, context, null );
 	}
 	
+	@Test
+	public void refresh() throws SecurityServiceException
+	{
+		SecurityConfig configInfo = SecurityConfig.createSecurityInfo(null, null, "SuccessfulLogin", null, null);
+		SecurityContext context = new SecurityContext(subject);
+		Configuration configuration = Configuration.getConfiguration();
+		System.out.println(configuration);
+		service.refreshSecurityConfig();
+		service.authenticate( configInfo, context, null );
+	}
+	
 	@Before
 	public void setup() throws ConfigurationException
 	{




More information about the jboss-svn-commits mailing list