[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