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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jul 23 10:15:14 EDT 2008


Author: beve
Date: 2008-07-23 10:15:14 -0400 (Wed, 23 Jul 2008)
New Revision: 21190

Added:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/
   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/jaas.login
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
Removed:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/JaasSecurityServiceUnitTest.java
Modified:
   labs/jbossesb/workspace/dbevenius/security/product/etc/schemas/xml/jbossesb-1.0.1.xsd
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
   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/SecurityConfigInfo.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
   labs/jbossesb/workspace/dbevenius/security/product/samples/quickstarts/helloworld_secured/jbossesb-properties.xml
Log:
refactoring.
Removed the logout option from the configuration.


Modified: labs/jbossesb/workspace/dbevenius/security/product/etc/schemas/xml/jbossesb-1.0.1.xsd
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2008-07-23 14:15:14 UTC (rev 21190)
@@ -414,13 +414,6 @@
 					</xsd:documentation>
 				</xsd:annotation>
 			</xsd:attribute>
-			<xsd:attribute name="logout" type="xsd:boolean" use="optional">
-				<xsd:annotation>
-					<xsd:documentation xml:lang="en">
-					Is used to indicate that a logout should be performed after this service has completed.
-					</xsd:documentation>
-				</xsd:annotation>
-			</xsd:attribute>
 		</xsd:complexType>
 	</xsd:element>
 	

Copied: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java (from rev 21189, 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/internal/soa/esb/services/security/JaasSecurityService.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -0,0 +1,140 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ * 
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ * 
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import java.net.URL;
+import java.security.Security;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginContext;
+import javax.security.auth.login.LoginException;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.util.ClassUtil;
+
+import com.sun.security.auth.login.ConfigFile;
+
+/**
+ * Concreate impl of a SecurityService in JBoss ESB
+ * <p/>
+ * 
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @Since 4.4
+ */
+public final class JaasSecurityService implements SecurityService
+{
+	public static final String LOGIN_CONFIG_URL_PREFIX = "login.config.url.";
+	
+	private Logger log = Logger.getLogger(JaasSecurityService.class);
+	
+	private javax.security.auth.login.Configuration configuration;
+	
+	/**
+	 * Authenticates a Subject using the information contained in the passed in 
+	 * Security context
+	 * 
+	 * @param context	the security context to be used.
+	 * @throws LoginException	if the authentication fails
+	 */
+	public void authenticate( final SecurityContext context) throws LoginException
+	{
+		LoginContext loginContext = new LoginContext(context.getConfigInfo().getModuleName(), context.getSubject(), null, configuration);
+		loginContext.login();
+		
+		addRunAs( context );
+	}
+	
+	public void addRunAs( final SecurityContext context )
+	{
+		final String runAs = context.getConfigInfo().getRunAs();
+		if ( runAs != null )
+		{
+			context.getSubject().getPrincipals().add(new Role(runAs));
+		}
+	}
+	
+	public boolean isCallerInRole( final Subject subject, final SecurityContext context)
+	{
+		return subject.getPrincipals().contains(new Role(context.getConfigInfo().getRunAs()));
+	}
+	
+	public void configure() throws ConfigurationException
+	{
+		String loginConfigUrl = Configuration.getSecurityServiceConfigUrl();
+		if ( loginConfigUrl != null )
+		{
+    		URL loginUrl = ClassUtil.getResource(loginConfigUrl, getClass());
+    		if ( loginUrl == null )
+    		{
+            	final String invalidPropertyMsg = 
+            	"The value for property [" + Environment.SECURITY_SERVICE_CONFIG_URL +
+            	"] must be a valid URL. This property should point to a file on the local file system or on the classpath.";
+    			throw new ConfigurationException(invalidPropertyMsg);
+    		}
+    		addLoginConfig(loginUrl);
+		}
+		
+	}
+	
+	public void addLoginConfig(final URL loginConfigUrl) throws ConfigurationException
+	{
+		if (loginConfigUrl == null)
+		{
+			throw new ConfigurationException("Could not locate the login config file at Url [" + loginConfigUrl + "]");
+		}
+		
+		int urlIndex = 1;
+		boolean loginUrlRegistered = false;
+		String registeredLoginUrl;
+        while ((registeredLoginUrl = Security.getProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex)) != null)
+        {
+        	loginUrlRegistered = registeredLoginUrl.equals(loginConfigUrl.toString());
+        	if (loginUrlRegistered)
+        	{
+        		break;
+        	}
+        	else
+        	{
+        		urlIndex++;
+        	}
+        }
+        
+        if (!loginUrlRegistered)
+        {
+    		log.info("Adding file [ " + loginConfigUrl + "] as [" + LOGIN_CONFIG_URL_PREFIX + urlIndex + "]");
+        	Security.setProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex, loginConfigUrl.toExternalForm());
+        	configuration =  new ConfigFile();
+        }
+	}
+
+	public void logout(SecurityContext context) throws LoginException
+	{
+		LoginContext loginContext = new LoginContext(context.getConfigInfo().getModuleName(), context.getSubject(), null, configuration);
+		loginContext.logout();
+	}
+
+}

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -79,7 +79,6 @@
     public static final String CONFIG_POLICY_FILE_TAG      	= "file";
     public static final String RUN_AS_TAG           		= "runAs";
     public static final String USE_CALLERS_IDENTIDY_TAG 	= "useCallersIdentity";
-    public static final String LOGOUT_TAG 					= "logout";
     public static final String MODULE_NAME_TAG 				= "moduleName";
     
     

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-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -393,27 +393,7 @@
 			}
 		};
 		
-		Boolean processResult = Boolean.FALSE;
-		try
-		{
-			processResult = (Boolean) Subject.doAsPrivileged(securityContext.getSubject(), action, null);
-		}
-		finally
-		{
-			if ( securityContext.getConfigInfo().getLogout() )
-			{
-    			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));
-    			}
-			}
-		}
+		Boolean processResult = (Boolean) Subject.doAsPrivileged(securityContext.getSubject(), action, null);
 		return processResult.booleanValue();
 	}
 	

Deleted: 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-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/JaasSecurityService.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -1,141 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- * 
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- * 
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import java.net.URL;
-import java.security.Principal;
-import java.security.Security;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.util.ClassUtil;
-
-import com.sun.security.auth.login.ConfigFile;
-
-/**
- * Concreate impl of a SecurityService in JBoss ESB
- * <p/>
- * 
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @Since 4.4
- */
-public final class JaasSecurityService implements SecurityService
-{
-	public static final String LOGIN_CONFIG_URL_PREFIX = "login.config.url.";
-	
-	private Logger log = Logger.getLogger(JaasSecurityService.class);
-	
-	private javax.security.auth.login.Configuration configuration;
-	
-	/**
-	 * Authenticates a Subject using the information contained in the passed in 
-	 * Security context
-	 * 
-	 * @param context	the security context to be used.
-	 * @throws LoginException	if the authentication fails
-	 */
-	public void authenticate( final SecurityContext context) throws LoginException
-	{
-		LoginContext loginContext = new LoginContext(context.getConfigInfo().getModuleName(), context.getSubject(), null, configuration);
-		loginContext.login();
-		
-		addRunAs( context );
-	}
-	
-	public void addRunAs( final SecurityContext context )
-	{
-		final String runAs = context.getConfigInfo().getRunAs();
-		if ( runAs != null )
-		{
-			context.getSubject().getPrincipals().add(new Role(runAs));
-		}
-	}
-	
-	public boolean isCallerInRole( final Subject subject, final SecurityContext context)
-	{
-		return subject.getPrincipals().contains(new Role(context.getConfigInfo().getRunAs()));
-	}
-	
-	public void configure() throws ConfigurationException
-	{
-		String loginConfigUrl = Configuration.getSecurityServiceConfigUrl();
-		if ( loginConfigUrl != null )
-		{
-    		URL loginUrl = ClassUtil.getResource(loginConfigUrl, getClass());
-    		if ( loginUrl == null )
-    		{
-            	final String invalidPropertyMsg = 
-            	"The value for property [" + Environment.SECURITY_SERVICE_CONFIG_URL +
-            	"] must be a valid URL. This property should point to a file on the local file system or on the classpath.";
-    			throw new ConfigurationException(invalidPropertyMsg);
-    		}
-    		addLoginConfig(loginUrl);
-		}
-		
-	}
-	
-	public void addLoginConfig(final URL loginConfigUrl) throws ConfigurationException
-	{
-		if (loginConfigUrl == null)
-		{
-			throw new ConfigurationException("Could not locate the login config file at Url [" + loginConfigUrl + "]");
-		}
-		
-		int urlIndex = 1;
-		boolean loginUrlRegistered = false;
-		String registeredLoginUrl;
-        while ((registeredLoginUrl = Security.getProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex)) != null)
-        {
-        	loginUrlRegistered = registeredLoginUrl.equals(loginConfigUrl.toString());
-        	if (loginUrlRegistered)
-        	{
-        		break;
-        	}
-        	else
-        	{
-        		urlIndex++;
-        	}
-        }
-        
-        if (!loginUrlRegistered)
-        {
-    		log.info("Adding file [ " + loginConfigUrl + "] as [" + LOGIN_CONFIG_URL_PREFIX + urlIndex + "]");
-        	Security.setProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex, loginConfigUrl.toExternalForm());
-        	configuration =  new ConfigFile();
-        }
-	}
-
-	public void logout(SecurityContext context) throws LoginException
-	{
-		LoginContext loginContext = new LoginContext(context.getConfigInfo().getModuleName(), context.getSubject(), null, configuration);
-		loginContext.logout();
-	}
-
-}

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigInfo.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigInfo.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigInfo.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -31,19 +31,16 @@
 	private String runAs;
 	private String useCallerIdentity;
 	private String moduleName;
-	private boolean logout;
 	
 
 	private SecurityConfigInfo(
 			final String runAs, 
 			final String useCallerIdentity, 
-			final String moduleName,
-			final boolean logout)
+			final String moduleName)
 	{  
 		this.runAs = runAs;
 		this.useCallerIdentity = useCallerIdentity;
 		this.moduleName = moduleName;
-		this.logout = logout;
 	}
 	
 	/**
@@ -56,10 +53,9 @@
 	public static SecurityConfigInfo createSecurityInfo(
 			final String runAs, 
 			final String useCallerIdentity,
-			final String moduleName,
-			final boolean logout)
+			final String moduleName)
 	{
-		return new SecurityConfigInfo(runAs, useCallerIdentity, moduleName, logout);
+		return new SecurityConfigInfo(runAs, useCallerIdentity, moduleName);
 	}
 	
 	public String getRunAs()
@@ -92,10 +88,4 @@
 		return runAs != null;
 	}
 	
-	public boolean getLogout()
-	{
-		return logout;
-	}
-	
-	
 }

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -40,8 +40,7 @@
 		final String runAs = securityFragment.getAttribute(ListenerTagNames.RUN_AS_TAG);
 		final String useCallersIdentity = securityFragment.getAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG);
 		final String moduleName = securityFragment.getAttribute(ListenerTagNames.MODULE_NAME_TAG);
-		final boolean logout = Boolean.valueOf(securityFragment.getAttribute(ListenerTagNames.LOGOUT_TAG, "false"));
 		
-		return SecurityConfigInfo.createSecurityInfo(runAs, useCallersIdentity, moduleName, logout);
+		return SecurityConfigInfo.createSecurityInfo(runAs, useCallersIdentity, moduleName);
 	}
 }

Copied: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java (from rev 21189, labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/JaasSecurityServiceUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors by the @authors tag. See the copyright.txt
+ * in the distribution for a full listing of individual contributors.
+ * 
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation; either version 2.1 of the License, or (at your option)
+ * any later version.
+ * 
+ * This software is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this software; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.internal.soa.esb.services.security;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.net.URL;
+import java.security.Principal;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.FailedLoginException;
+import javax.security.auth.login.LoginException;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.JaasSecurityContext;
+import org.jboss.soa.esb.services.security.SecurityConfigInfo;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.TestPrincipal;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link SecurityServiceImpl}
+ * <p/>
+ * 
+ * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
+ * @since 4.4
+ */
+public class JaasSecurityServiceUnitTest
+{
+	private SecurityService service = new JaasSecurityService();
+	private Subject subject = new Subject();			
+	
+	@Test
+	public void configure() throws ConfigurationException, LoginException
+	{
+		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo(null, null, "SuccessfulLogin");
+		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
+		
+		service.authenticate(context);
+		
+		Set<TestPrincipal> principals = context.getSubject().getPrincipals( TestPrincipal.class );
+		assertEquals( 1, principals.size() );
+		assertEquals( "test", principals.iterator().next().getName() );
+	}
+	
+	@Test
+	public void configureWithRole() throws ConfigurationException, LoginException
+	{
+		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo("adminRole", null, "SuccessfulLogin");
+		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
+		
+		service.authenticate(context);
+		
+		Set<Principal> principals = context.getSubject().getPrincipals( Principal.class );
+		assertEquals( 2, principals.size() );
+	}
+	
+	@Test
+	public void isCallerInRole() throws LoginException
+	{
+		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo("adminRole", null, "SuccessfulLogin");
+		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
+		service.authenticate(context);
+		Subject subject = new Subject();
+		subject.getPrincipals().add(new Role("adminRole"));
+		assertTrue( service.isCallerInRole(subject, context));
+	}
+	
+	@Test ( expected = FailedLoginException.class )
+	public void loginFailure() throws LoginException, ConfigurationException
+	{
+		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo(null, null, "FailureLogin");
+		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
+		service.authenticate( context );
+	}
+	
+	@Before
+	public void setup() throws ConfigurationException
+	{
+		URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+        System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+		service.configure();
+	}
+	
+	public static junit.framework.Test suite()
+	{
+		return new JUnit4TestAdapter( JaasSecurityServiceUnitTest.class );
+	}
+	
+}

Copied: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login (from rev 21150, labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login)
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login	2008-07-23 14:15:14 UTC (rev 21190)
@@ -0,0 +1,6 @@
+SuccessfulLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
+};
+FailureLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
+};
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml (from rev 21174, labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml	2008-07-23 14:15:14 UTC (rev 21190)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+  PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+  You should have received a copy of the GNU Lesser General Public License,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+        <property name="jboss.esb.invm.scope.default" value="NONE"/>
+    </properties>
+    <properties name="security">
+    	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+    	<property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
+    </properties>
+    <properties name="registry">      
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
+    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
+    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+    	<property name="org.jboss.soa.esb.registry.implementationClass" 
+    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" 
+    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" 
+    		value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" 
+    	  value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
+    		value="org.apache.ws.scout.transport.RMITransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+    </properties>
+    <properties name="messagerouting">
+    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+    </properties>
+</esb>

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/SecurityMapperUnitTest.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -83,14 +83,6 @@
 		assertEquals( "user1", userIdentityNode.getNodeValue());
 	}
 	
-	@Test
-	public void mapLogout() throws ConfigurationException
-	{
-		Node logoutNode = securityNode.getAttributes().getNamedItem( ListenerTagNames.LOGOUT_TAG );
-		assertNotNull( logoutNode.getNodeName() );
-		assertEquals( "true", logoutNode.getNodeValue());
-	}
-	
 	//	setup methods
 	
 	@Before

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/listeners/config/mappers/jbossesb_config_security.xml	2008-07-23 14:15:14 UTC (rev 21190)
@@ -21,7 +21,7 @@
     </providers>
 	<services>    
 		<service category="Test2" name="JMSJCATest" description="JMS JCA Test">
-            <security runAs="MrPoon" moduleName="mod1" useCallersIdentity="user1" logout="true"/>
+            <security runAs="MrPoon" moduleName="mod1" useCallersIdentity="user1"/>
 			<listeners>    	    
 				<jms-listener name="JMSListener" busidref="quickstartEsbChannel" maxThreads="1"/>
 			</listeners>

Deleted: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/JaasSecurityServiceUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -1,117 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors by the @authors tag. See the copyright.txt
- * in the distribution for a full listing of individual contributors.
- * 
- * This is free software; you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General Public License as published by the Free
- * Software Foundation; either version 2.1 of the License, or (at your option)
- * any later version.
- * 
- * This software is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
- * details.
- * 
- * You should have received a copy of the GNU Lesser General Public License
- * along with this software; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
- * site: http://www.fsf.org.
- */
-package org.jboss.soa.esb.services.security;
-
-import static org.junit.Assert.*;
-import static org.junit.Assert.assertEquals;
-
-import java.net.URL;
-import java.security.Principal;
-import java.util.Iterator;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.FailedLoginException;
-import javax.security.auth.login.LoginException;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for {@link SecurityServiceImpl}
- * <p/>
- * 
- * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- * @since 4.4
- */
-public class JaasSecurityServiceUnitTest
-{
-	private SecurityService service = new JaasSecurityService();
-	private Subject subject = new Subject();			
-	
-	@Test
-	public void configure() throws ConfigurationException, LoginException
-	{
-		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo(null, null, "SuccessfulLogin", false);
-		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
-		
-		service.authenticate(context);
-		
-		Set<TestPrincipal> principals = context.getSubject().getPrincipals( TestPrincipal.class );
-		assertEquals( 1, principals.size() );
-		assertEquals( "test", principals.iterator().next().getName() );
-	}
-	
-	@Test
-	public void configureWithRole() throws ConfigurationException, LoginException
-	{
-		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo("adminRole", null, "SuccessfulLogin", false);
-		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
-		
-		service.authenticate(context);
-		
-		Set<Principal> principals = context.getSubject().getPrincipals( Principal.class );
-		System.out.println(principals);
-		assertEquals( 2, principals.size() );
-		Iterator<Principal> iterator = principals.iterator();
-		assertEquals( "adminRole", iterator.next().getName() );
-		assertEquals( "test", iterator.next().getName() );
-	}
-	
-	@Test
-	public void isCallerInRole() throws LoginException
-	{
-		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo("adminRole", null, "SuccessfulLogin", false);
-		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
-		service.authenticate(context);
-		Subject subject = new Subject();
-		subject.getPrincipals().add(new Role("adminRole"));
-		assertTrue( service.isCallerInRole(subject, context));
-	}
-	
-	@Test ( expected = FailedLoginException.class )
-	public void loginFailure() throws LoginException, ConfigurationException
-	{
-		SecurityConfigInfo configInfo = SecurityConfigInfo.createSecurityInfo(null, null, "FailureLogin", false);
-		JaasSecurityContext context = new JaasSecurityContext(configInfo, subject);
-		service.authenticate( context );
-	}
-	
-	@Before
-	public void setup() throws ConfigurationException
-	{
-		URL resource = ClassUtil.getResource("security-properties.xml", getClass());
-        System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
-		service.configure();
-	}
-	
-	public static junit.framework.Test suite()
-	{
-		return new JUnit4TestAdapter( JaasSecurityServiceUnitTest.class );
-	}
-	
-}

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java	2008-07-23 14:15:14 UTC (rev 21190)
@@ -43,7 +43,7 @@
 	@Test
 	public void createSecurityConfigInfoWithAuth()
 	{
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
 		
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertEquals(runAs, securityInfo.getRunAs());
@@ -53,7 +53,7 @@
 	@Test
 	public void createSecurityConfigInfoWithoutAuth()
 	{
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertEquals(runAs, securityInfo.getRunAs());
 		assertNull(securityInfo.getUseCallerIdentity());
@@ -63,7 +63,7 @@
 	public void createSecurityConfigInfoWithUseCallersIdentity()
 	{
 		final String callersIdentity = "DrCox";
-		final ConfigTree securityFragment = createSecurityFragment(runAs, callersIdentity, null, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, callersIdentity, null);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertEquals(callersIdentity, securityInfo.getUseCallerIdentity());
 	}
@@ -72,7 +72,7 @@
 	public void createSecurityConfigInfoWithModuleName()
 	{
 		final String moduleName = "testModule";
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertEquals(moduleName, securityInfo.getModuleName());
 	}
@@ -81,7 +81,7 @@
 	public void needsAuthentication()
 	{
 		final String moduleName = "testModule";
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, moduleName);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertTrue(securityInfo.needsAuthentiation());
 	}
@@ -89,7 +89,7 @@
 	@Test
 	public void doesNotNeedAuthentication()
 	{
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertFalse(securityInfo.needsAuthentiation());
 	}
@@ -97,7 +97,7 @@
 	@Test
 	public void hasRunAs()
 	{
-		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null, false);
+		final ConfigTree securityFragment = createSecurityFragment(runAs, null, null);
 		SecurityConfigInfo securityInfo = SecurityConfigUtil.createSecurityConfigInfo(securityFragment);
 		assertTrue(securityInfo.hasRunAs());
 	}
@@ -110,14 +110,12 @@
 	private ConfigTree createSecurityFragment(
 			final String runAs, 
 			final String callerIdentity, 
-			final String moduleName,
-			final boolean logout)
+			final String moduleName)
 	{
 		final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG);
 		securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
 		securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
 		securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
-		securityElement.setAttribute(ListenerTagNames.LOGOUT_TAG, String.valueOf(logout));
 		return securityElement;
 	}
 

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml	2008-07-23 14:15:14 UTC (rev 21190)
@@ -37,7 +37,7 @@
         <property name="jboss.esb.invm.scope.default" value="NONE"/>
     </properties>
     <properties name="security">
-    	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.soa.esb.services.security.JaasSecurityService"/>
+    	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
     	<property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
     </properties>
     <properties name="registry">      

Modified: labs/jbossesb/workspace/dbevenius/security/product/samples/quickstarts/helloworld_secured/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/samples/quickstarts/helloworld_secured/jbossesb-properties.xml	2008-07-23 12:23:52 UTC (rev 21189)
+++ labs/jbossesb/workspace/dbevenius/security/product/samples/quickstarts/helloworld_secured/jbossesb-properties.xml	2008-07-23 14:15:14 UTC (rev 21190)
@@ -38,7 +38,7 @@
         <property name="jboss.esb.invm.scope.default" value="NONE"/>
     </properties>
 	 <properties name="security">
-        <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.soa.esb.services.security.JaasSecurityService"/>
+        <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
         <property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
     </properties>
     <properties name="registry">




More information about the jboss-svn-commits mailing list