SEC-562: More changes of Acegi name in comments, docs etc.

This commit is contained in:
Luke Taylor 2007-10-03 14:02:39 +00:00
parent 9dbeda1c85
commit 3f2b9cd6fb
115 changed files with 729 additions and 739 deletions

View File

@ -32,13 +32,13 @@ import javax.servlet.http.HttpServletRequest;
/** /**
* Enables CAS to use the Acegi Security System for authentication.<P>This class works along with {@link * Enables CAS to use the Spring Security for authentication.<P>This class works along with {@link
* CasPasswordHandler} to enable users to easily migrate from stand-alone Acegi Security System deployments to * CasPasswordHandler} to enable users to easily migrate from stand-alone Spring Security deployments to
* enterprise-wide CAS deployments.</p> * enterprise-wide CAS deployments.</p>
* <p>It should be noted that the Acegi Security System will operate as a CAS client irrespective of the * <p>It should be noted that Spring Security will operate as a CAS client irrespective of the
* <code>PasswordHandler</code> used on the CAS server. In other words, this class need <B>not</B> be used on the CAS * <code>PasswordHandler</code> used on the CAS server. In other words, this class need <B>not</B> be used on the CAS
* server if not desired. It exists solely for the convenience of users wishing have CAS delegate to an Acegi Security * server if not desired. It exists solely for the convenience of users wishing have CAS delegate to a Spring Security-based
* System-based <code>AuthenticationManager</code>.</p> * <code>AuthenticationManager</code>.</p>
* <p>This class works requires a properly configured <code>CasPasswordHandler</code>. On the first authentication * <p>This class works requires a properly configured <code>CasPasswordHandler</code>. On the first authentication
* request, the class will use Spring's {@link WebApplicationContextUtils#getRequiredWebApplicationContext(ServletContext)} * request, the class will use Spring's {@link WebApplicationContextUtils#getRequiredWebApplicationContext(ServletContext)}
* method to obtain an <code>ApplicationContext</code> instance, inside which must be a configured * method to obtain an <code>ApplicationContext</code> instance, inside which must be a configured
@ -49,7 +49,7 @@ import javax.servlet.http.HttpServletRequest;
* <code>org.springframework.security.adapters.cas.CasPasswordHandlerProxy</code>.</p> * <code>org.springframework.security.adapters.cas.CasPasswordHandlerProxy</code>.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:CasPasswordHandlerProxy.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class CasPasswordHandlerProxy implements PasswordHandler { public class CasPasswordHandlerProxy implements PasswordHandler {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================

View File

@ -32,12 +32,12 @@ import org.springframework.util.Assert;
/** /**
* <p>Provides JA-SIG CAS 3 authentication by delegating to the Acegi <code>AuthenticationManager</code>.</p> * <p>Provides JA-SIG CAS 3 authentication by delegating to the Spring Security <code>AuthenticationManager</code>.</p>
* <p>This class would be configured in the <code>webapp/WEB-INF/deployerConfigContext.xml</code> file in the CAS * <p>This class would be configured in the <code>webapp/WEB-INF/deployerConfigContext.xml</code> file in the CAS
* distribution.</p> * distribution.</p>
* *
* @author Scott Battaglia * @author Scott Battaglia
* @version $Id$ * @version $Id:CasAuthenticationHandler.java 2151 2007-09-22 11:54:13Z luke_t $
* *
* @see AuthenticationHandler * @see AuthenticationHandler
* @see AuthenticationManager * @see AuthenticationManager
@ -81,9 +81,9 @@ public final class CasAuthenticationHandler extends AbstractUsernamePasswordAuth
} }
/** /**
* Method to set the Acegi <code>AuthenticationManager</code> to delegate to. * Method to set the Spring Security <code>AuthenticationManager</code> to delegate to.
* *
* @param authenticationManager the Acegi AuthenticationManager that knows how to authenticate users. * @param authenticationManager the Spring Security AuthenticationManager that knows how to authenticate users.
*/ */
public void setAuthenticationManager(final AuthenticationManager authenticationManager) { public void setAuthenticationManager(final AuthenticationManager authenticationManager) {
this.authenticationManager = authenticationManager; this.authenticationManager = authenticationManager;

View File

@ -20,9 +20,9 @@
* The example CAS AuthenticationHandler should be placed within CAS's * The example CAS AuthenticationHandler should be placed within CAS's
* AuthenticationManager's authenticationHandler list property. * AuthenticationManager's authenticationHandler list property.
* *
* The Acegi-specific beans can just be placed in the context file. * The Spring Security-specific beans can just be placed in the context file.
* *
* $Id$ * $Id:applicationContext.xml 2151 2007-09-22 11:54:13Z luke_t $
--> -->
<beans> <beans>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Acegi Security CAS Adapter"> <project name="Spring Security CAS Adapter">
<body> <body>
<menu ref="parent"/> <menu ref="parent"/>
<menu ref="reports"/> <menu ref="reports"/>

View File

@ -19,7 +19,7 @@ import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationManager; import org.springframework.security.AuthenticationManager;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
@ -41,17 +41,17 @@ import java.util.Map;
/** /**
* Adapter to enable Catalina (Tomcat) to authenticate via the Acegi Security System for Spring.<p>Returns a {@link * Adapter to enable Catalina (Tomcat) to authenticate via the Spring Security.<p>Returns a {@link
* PrincipalAcegiUserToken} to Catalina's authentication system, which is subsequently available via * PrincipalSpringSecurityUserToken} to Catalina's authentication system, which is subsequently available via
* <code>HttpServletRequest.getUserPrincipal()</code>.</p> * <code>HttpServletRequest.getUserPrincipal()</code>.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:CatalinaSpringSecurityUserRealm.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class CatalinaAcegiUserRealm extends RealmBase { public class CatalinaSpringSecurityUserRealm extends RealmBase {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(CatalinaAcegiUserRealm.class); private static final Log logger = LogFactory.getLog(CatalinaSpringSecurityUserRealm.class);
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -59,7 +59,7 @@ public class CatalinaAcegiUserRealm extends RealmBase {
private Container container; private Container container;
private String appContextLocation; private String appContextLocation;
private String key; private String key;
protected final String name = "CatalinaSpringUserRealm / $Id$"; protected final String name = "CatalinaSpringUserRealm / $Id:CatalinaSpringSecurityUserRealm.java 2151 2007-09-22 11:54:13Z luke_t $";
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -85,7 +85,7 @@ public class CatalinaAcegiUserRealm extends RealmBase {
return null; return null;
} }
return new PrincipalAcegiUserToken(this.key, response.getPrincipal().toString(), return new PrincipalSpringSecurityUserToken(this.key, response.getPrincipal().toString(),
response.getCredentials().toString(), response.getAuthorities(), response.getPrincipal()); response.getCredentials().toString(), response.getAuthorities(), response.getPrincipal());
} }
@ -163,14 +163,14 @@ public class CatalinaAcegiUserRealm extends RealmBase {
return false; return false;
} }
if (!(principal instanceof PrincipalAcegiUserToken)) { if (!(principal instanceof PrincipalSpringSecurityUserToken)) {
logger.warn("Expected passed principal to be of type PrincipalAcegiUserToken but was " logger.warn("Expected passed principal to be of type PrincipalSpringSecurityUserToken but was "
+ principal.getClass().getName()); + principal.getClass().getName());
return false; return false;
} }
PrincipalAcegiUserToken test = (PrincipalAcegiUserToken) principal; PrincipalSpringSecurityUserToken test = (PrincipalSpringSecurityUserToken) principal;
return test.isUserInRole(role); return test.isUserInRole(role);
} }
@ -221,7 +221,7 @@ public class CatalinaAcegiUserRealm extends RealmBase {
String beanName = (String) beans.keySet().iterator().next(); String beanName = (String) beans.keySet().iterator().next();
authenticationManager = (AuthenticationManager) beans.get(beanName); authenticationManager = (AuthenticationManager) beans.get(beanName);
logger.info("CatalinaAcegiUserRealm Started"); logger.info("CatalinaSpringSecurityUserRealm Started");
} }
/** /**

View File

@ -20,7 +20,7 @@ import junit.framework.TestCase;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleException;
@ -32,35 +32,35 @@ import java.security.Principal;
/** /**
* Tests {@link CatalinaAcegiUserRealm}. * Tests {@link CatalinaSpringSecurityUserRealm}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:CatalinaSpringSecurityUserRealmTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class CatalinaAcegiUserRealmTests extends TestCase { public class CatalinaSpringSecurityUserRealmTests extends TestCase {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private final String ADAPTER_KEY = "my_key"; private final String ADAPTER_KEY = "my_key";
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public CatalinaAcegiUserRealmTests() { public CatalinaSpringSecurityUserRealmTests() {
super(); super();
} }
public CatalinaAcegiUserRealmTests(String arg0) { public CatalinaSpringSecurityUserRealmTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) { public static void main(String[] args) {
junit.textui.TestRunner.run(CatalinaAcegiUserRealmTests.class); junit.textui.TestRunner.run(CatalinaSpringSecurityUserRealmTests.class);
} }
private CatalinaAcegiUserRealm makeAdapter(String fileName) private CatalinaSpringSecurityUserRealm makeAdapter(String fileName)
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
URL url = Thread.currentThread().getContextClassLoader().getResource("org/springframework/security/adapters/" + fileName); URL url = Thread.currentThread().getContextClassLoader().getResource("org/springframework/security/adapters/" + fileName);
@ -86,7 +86,7 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean() public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean()
throws Exception { throws Exception {
try { try {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-invalid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-invalid.xml");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertTrue(true); assertTrue(true);
@ -95,7 +95,7 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfNoAppContextSpecified() public void testAdapterAbortsIfNoAppContextSpecified()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
adapter.setKey("KEY"); adapter.setKey("KEY");
@ -117,7 +117,7 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
} }
public void testAdapterAbortsIfNoKeySpecified() throws Exception { public void testAdapterAbortsIfNoKeySpecified() throws Exception {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
adapter.setAppContextLocation("SOMETHING"); adapter.setAppContextLocation("SOMETHING");
@ -140,7 +140,7 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsWithIncorrectApplicationContextLocation() public void testAdapterAbortsWithIncorrectApplicationContextLocation()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
adapter.setAppContextLocation("SOME_INVALID_PATH"); adapter.setAppContextLocation("SOME_INVALID_PATH");
adapter.setKey("KEY"); adapter.setKey("KEY");
@ -153,48 +153,48 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
} }
public void testAdapterIdentifiesItself() throws Exception { public void testAdapterIdentifiesItself() throws Exception {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertTrue(adapter.getName().lastIndexOf("CatalinaSpringUserRealm") != -1); assertTrue(adapter.getName().lastIndexOf("CatalinaSpringUserRealm") != -1);
} }
public void testAdapterStartsUpSuccess() throws Exception { public void testAdapterStartsUpSuccess() throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
assertTrue(true); assertTrue(true);
} }
public void testAuthenticateManyParamsReturnsNull() { public void testAuthenticateManyParamsReturnsNull() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertEquals(null, adapter.authenticate(null, null, null, null, null, null, null, null)); assertEquals(null, adapter.authenticate(null, null, null, null, null, null, null, null));
} }
public void testAuthenticateX509ReturnsNull() { public void testAuthenticateX509ReturnsNull() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertEquals(null, adapter.authenticate(null)); assertEquals(null, adapter.authenticate(null));
} }
public void testAuthenticationFailsForIncorrectPassword() public void testAuthenticationFailsForIncorrectPassword()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
assertEquals(null, adapter.authenticate("marissa", "kangaroo")); assertEquals(null, adapter.authenticate("marissa", "kangaroo"));
} }
public void testAuthenticationFailsForIncorrectUserName() public void testAuthenticationFailsForIncorrectUserName()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
assertEquals(null, adapter.authenticate("melissa", "koala")); assertEquals(null, adapter.authenticate("melissa", "koala"));
} }
public void testAuthenticationUsingByteArrayForCredentials() public void testAuthenticationUsingByteArrayForCredentials()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
byte[] credentials = {'k', 'o', 'a', 'l', 'a'}; byte[] credentials = {'k', 'o', 'a', 'l', 'a'};
Principal result = adapter.authenticate("marissa", credentials); Principal result = adapter.authenticate("marissa", credentials);
if (!(result instanceof PrincipalAcegiUserToken)) { if (!(result instanceof PrincipalSpringSecurityUserToken)) {
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result; PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -204,14 +204,14 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
public void testAuthenticationUsingStringForCredentials() public void testAuthenticationUsingStringForCredentials()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
Principal result = adapter.authenticate("marissa", "koala"); Principal result = adapter.authenticate("marissa", "koala");
if (!(result instanceof PrincipalAcegiUserToken)) { if (!(result instanceof PrincipalSpringSecurityUserToken)) {
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result; PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -221,28 +221,28 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
public void testAuthenticationWithNullPasswordHandledGracefully() public void testAuthenticationWithNullPasswordHandledGracefully()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
assertEquals(null, adapter.authenticate("marissa", (String) null)); assertEquals(null, adapter.authenticate("marissa", (String) null));
} }
public void testAuthenticationWithNullUserNameHandledGracefully() public void testAuthenticationWithNullUserNameHandledGracefully()
throws Exception { throws Exception {
CatalinaAcegiUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml"); CatalinaSpringSecurityUserRealm adapter = makeAdapter("catalinaAdapterTest-valid.xml");
assertEquals(null, adapter.authenticate(null, "koala")); assertEquals(null, adapter.authenticate(null, "koala"));
} }
public void testGetPasswordReturnsNull() { public void testGetPasswordReturnsNull() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertEquals(null, adapter.getPassword(null)); assertEquals(null, adapter.getPassword(null));
} }
public void testGetPrincipalReturnsNull() { public void testGetPrincipalReturnsNull() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertEquals(null, adapter.getPrincipal(null)); assertEquals(null, adapter.getPrincipal(null));
} }
public void testGetters() { public void testGetters() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
adapter.setKey("KEY"); adapter.setKey("KEY");
assertEquals("KEY", adapter.getKey()); assertEquals("KEY", adapter.getKey());
adapter.setAppContextLocation("SOME_LOCATION"); adapter.setAppContextLocation("SOME_LOCATION");
@ -250,12 +250,12 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
} }
public void testHasRoleWithANullPrincipalFails() { public void testHasRoleWithANullPrincipalFails() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertTrue(!adapter.hasRole(null, "ROLE_ONE")); assertTrue(!adapter.hasRole(null, "ROLE_ONE"));
} }
public void testHasRoleWithAPrincipalTheAdapterDidNotCreateFails() { public void testHasRoleWithAPrincipalTheAdapterDidNotCreateFails() {
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertTrue(!adapter.hasRole(new Principal() { assertTrue(!adapter.hasRole(new Principal() {
public String getName() { public String getName() {
return "MockPrincipal"; return "MockPrincipal";
@ -264,10 +264,10 @@ public class CatalinaAcegiUserRealmTests extends TestCase {
} }
public void testHasRoleWithPrincipalAcegiUserToken() { public void testHasRoleWithPrincipalAcegiUserToken() {
PrincipalAcegiUserToken token = new PrincipalAcegiUserToken("KEY", "Test", "Password", PrincipalSpringSecurityUserToken token = new PrincipalSpringSecurityUserToken("KEY", "Test", "Password",
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")}, new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")},
null); null);
CatalinaAcegiUserRealm adapter = new CatalinaAcegiUserRealm(); CatalinaSpringSecurityUserRealm adapter = new CatalinaSpringSecurityUserRealm();
assertTrue(adapter.hasRole(token, "ROLE_ONE")); assertTrue(adapter.hasRole(token, "ROLE_ONE"));
assertTrue(adapter.hasRole(token, "ROLE_TWO")); assertTrue(adapter.hasRole(token, "ROLE_TWO"));
assertTrue(!adapter.hasRole(token, "ROLE_WE_DO_NOT_HAVE")); assertTrue(!adapter.hasRole(token, "ROLE_WE_DO_NOT_HAVE"));

View File

@ -21,7 +21,7 @@ import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationManager; import org.springframework.security.AuthenticationManager;
import org.springframework.security.CredentialsExpiredException; import org.springframework.security.CredentialsExpiredException;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
@ -52,15 +52,15 @@ import javax.security.auth.login.LoginException;
/** /**
* Adapter to enable JBoss to authenticate via the Acegi Security System for Spring.<p>Returns a {@link * Adapter to enable JBoss to authenticate via the Spring Security System for Spring.
* PrincipalAcegiUserToken} to JBoss' authentication system, which is subsequently available from * <p>Returns a {@link PrincipalSpringSecurityUserToken} to JBoss' authentication system,
* <code>java:comp/env/security/subject</code>.</p> * which is subsequently available from <code>java:comp/env/security/subject</code>.</p>
* *
* @author Ben Alex * @author Ben Alex
* @author Sergio Bern<EFBFBD> * @author Sergio Bern<EFBFBD>
* @version $Id$ * @version $Id:JbossSpringSecurityLoginModule.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JbossAcegiLoginModule extends AbstractServerLoginModule { public class JbossSpringSecurityLoginModule extends AbstractServerLoginModule {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private AuthenticationManager authenticationManager; private AuthenticationManager authenticationManager;
@ -284,7 +284,7 @@ public class JbossAcegiLoginModule extends AbstractServerLoginModule {
super.log.debug("user is logged. redirecting to jaas classes"); super.log.debug("user is logged. redirecting to jaas classes");
identity = new PrincipalAcegiUserToken(this.key, response.getName(), response.getCredentials().toString(), identity = new PrincipalSpringSecurityUserToken(this.key, response.getName(), response.getCredentials().toString(),
response.getAuthorities(), response.getPrincipal()); response.getAuthorities(), response.getPrincipal());
} }

View File

@ -20,7 +20,7 @@ import junit.framework.TestCase;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.context.SecurityContextHolder;
import org.springframework.security.context.SecurityContextImpl; import org.springframework.security.context.SecurityContextImpl;
@ -50,7 +50,7 @@ import javax.servlet.ServletResponse;
* Tests {@link JbossIntegrationFilter}. * Tests {@link JbossIntegrationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JbossIntegrationFilterTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JbossIntegrationFilterTests extends TestCase { public class JbossIntegrationFilterTests extends TestCase {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
@ -95,7 +95,7 @@ public class JbossIntegrationFilterTests extends TestCase {
} }
public void testCorrectOperation() throws Exception { public void testCorrectOperation() throws Exception {
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key", "someone", "password", PrincipalSpringSecurityUserToken principal = new PrincipalSpringSecurityUserToken("key", "someone", "password",
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")}, null); new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")}, null);
JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(makeIntoSubject(principal))); JbossIntegrationFilter filter = new MockJbossIntegrationFilter(new MockInitialContext(makeIntoSubject(principal)));

View File

@ -17,10 +17,9 @@ package org.springframework.security.adapters.jboss;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.jboss.security.SimplePrincipal; import org.jboss.security.SimplePrincipal;
import org.jboss.security.SimpleGroup;
import java.io.IOException; import java.io.IOException;
@ -28,7 +27,6 @@ import java.security.Principal;
import java.security.acl.Group; import java.security.acl.Group;
import java.util.Properties; import java.util.Properties;
import java.util.Enumeration;
import javax.security.auth.Subject; import javax.security.auth.Subject;
import javax.security.auth.callback.Callback; import javax.security.auth.callback.Callback;
@ -41,30 +39,30 @@ import javax.security.auth.login.LoginException;
/** /**
* Tests {@link JbossAcegiLoginModule}. * Tests {@link JbossSpringSecurityLoginModule}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JbossSpringSecurityLoginModuleTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JbossAcegiLoginModuleTests extends TestCase { public class JbossSpringSecurityLoginModuleTests extends TestCase {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private final String ADAPTER_KEY = "my_key"; private final String ADAPTER_KEY = "my_key";
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public JbossAcegiLoginModuleTests() { public JbossSpringSecurityLoginModuleTests() {
super(); super();
} }
public JbossAcegiLoginModuleTests(String arg0) { public JbossSpringSecurityLoginModuleTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) { public static void main(String[] args) {
junit.textui.TestRunner.run(JbossAcegiLoginModuleTests.class); junit.textui.TestRunner.run(JbossSpringSecurityLoginModuleTests.class);
} }
public final void setUp() throws Exception { public final void setUp() throws Exception {
@ -73,7 +71,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean() public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-invalid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-invalid.xml");
@ -88,7 +86,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAdapterAbortsIfNoAppContextSpecified() public void testAdapterAbortsIfNoAppContextSpecified()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
@ -113,7 +111,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
} }
public void testAdapterAbortsIfNoKeySpecified() throws Exception { public void testAdapterAbortsIfNoKeySpecified() throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -139,7 +137,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAdapterAbortsWithIncorrectApplicationContextLocation() public void testAdapterAbortsWithIncorrectApplicationContextLocation()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
@ -155,7 +153,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAdapterFailsToAuthenticateIfNoCallbackHandlerAvailable() public void testAdapterFailsToAuthenticateIfNoCallbackHandlerAvailable()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -173,7 +171,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
} }
public void testAdapterStartsUpSuccess() throws Exception { public void testAdapterStartsUpSuccess() throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -183,7 +181,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAuthenticationFailsForIncorrectPassword() public void testAuthenticationFailsForIncorrectPassword()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -203,7 +201,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAuthenticationFailsForIncorrectUserName() public void testAuthenticationFailsForIncorrectUserName()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -222,7 +220,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
} }
public void testAuthenticationSuccess() throws Exception { public void testAuthenticationSuccess() throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -235,11 +233,11 @@ public class JbossAcegiLoginModuleTests extends TestCase {
Principal result = adapter.getIdentity(); Principal result = adapter.getIdentity();
if (!(result instanceof PrincipalAcegiUserToken)) { if (!(result instanceof PrincipalSpringSecurityUserToken)) {
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result; PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -249,7 +247,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAuthenticationWithNullPasswordHandledGracefully() public void testAuthenticationWithNullPasswordHandledGracefully()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -269,7 +267,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAuthenticationWithNullUserNameAndNullPasswordHandledGracefully() public void testAuthenticationWithNullUserNameAndNullPasswordHandledGracefully()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -289,7 +287,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
public void testAuthenticationWithNullUserNameHandledGracefully() public void testAuthenticationWithNullUserNameHandledGracefully()
throws Exception { throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");
@ -308,7 +306,7 @@ public class JbossAcegiLoginModuleTests extends TestCase {
} }
public void testGetRoleSets() throws Exception { public void testGetRoleSets() throws Exception {
JbossAcegiLoginModule adapter = new JbossAcegiLoginModule(); JbossSpringSecurityLoginModule adapter = new JbossSpringSecurityLoginModule();
Properties props = new Properties(); Properties props = new Properties();
props.put("key", ADAPTER_KEY); props.put("key", ADAPTER_KEY);
props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml"); props.put("appContextLocation", "org/springframework/security/adapters/adaptertest-valid.xml");

View File

@ -34,17 +34,17 @@ import java.util.Map;
/** /**
* Adapter to enable Jetty to authenticate via the Acegi Security System for Spring.<p>Returns a {@link * Adapter to enable Jetty to authenticate via Spring Security.<p>Returns a {@link
* JettyAcegiUserToken} to Jetty's authentication system, which is subsequently available via * JettySpringSecurityUserToken} to Jetty's authentication system, which is subsequently available via
* <code>HttpServletRequest.getUserPrincipal()</code>.</p> * <code>HttpServletRequest.getUserPrincipal()</code>.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JettySpringSecurityUserRealm.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public final class JettyAcegiUserRealm implements UserRealm { public final class JettySpringSecurityUserRealm implements UserRealm {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(JettyAcegiUserRealm.class); private static final Log logger = LogFactory.getLog(JettySpringSecurityUserRealm.class);
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -64,7 +64,7 @@ public final class JettyAcegiUserRealm implements UserRealm {
* *
* @throws IllegalArgumentException DOCUMENT ME! * @throws IllegalArgumentException DOCUMENT ME!
*/ */
public JettyAcegiUserRealm(String realm, String providerKey, String appContextLocation) { public JettySpringSecurityUserRealm(String realm, String providerKey, String appContextLocation) {
this.realm = realm; this.realm = realm;
this.key = providerKey; this.key = providerKey;
@ -96,7 +96,7 @@ public final class JettyAcegiUserRealm implements UserRealm {
authenticationManager = (AuthenticationManager) beans.get(beanName); authenticationManager = (AuthenticationManager) beans.get(beanName);
} }
protected JettyAcegiUserRealm() { protected JettySpringSecurityUserRealm() {
throw new IllegalArgumentException("Cannot use default constructor"); throw new IllegalArgumentException("Cannot use default constructor");
} }
@ -124,7 +124,7 @@ public final class JettyAcegiUserRealm implements UserRealm {
return null; return null;
} }
return new JettyAcegiUserToken(this.key, response.getPrincipal().toString(), return new JettySpringSecurityUserToken(this.key, response.getPrincipal().toString(),
response.getCredentials().toString(), response.getAuthorities()); response.getCredentials().toString(), response.getAuthorities());
} }

View File

@ -26,9 +26,9 @@ import org.mortbay.http.UserPrincipal;
* A Jetty compatible {@link org.springframework.security.Authentication} object. * A Jetty compatible {@link org.springframework.security.Authentication} object.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JettySpringSecurityUserToken.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JettyAcegiUserToken extends AbstractAdapterAuthenticationToken implements UserPrincipal { public class JettySpringSecurityUserToken extends AbstractAdapterAuthenticationToken implements UserPrincipal {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -37,13 +37,13 @@ public class JettyAcegiUserToken extends AbstractAdapterAuthenticationToken impl
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public JettyAcegiUserToken(String key, String username, String password, GrantedAuthority[] authorities) { public JettySpringSecurityUserToken(String key, String username, String password, GrantedAuthority[] authorities) {
super(key, authorities); super(key, authorities);
this.username = username; this.username = username;
this.password = password; this.password = password;
} }
protected JettyAcegiUserToken() { protected JettySpringSecurityUserToken() {
throw new IllegalArgumentException("Cannot use default constructor"); throw new IllegalArgumentException("Cannot use default constructor");
} }

View File

@ -21,10 +21,10 @@ import org.mortbay.http.UserPrincipal;
/** /**
* Tests {@link JettyAcegiUserRealm}. * Tests {@link JettySpringSecurityUserRealm}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JettyAcegiUserRealmTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JettyAcegiUserRealmTests extends TestCase { public class JettyAcegiUserRealmTests extends TestCase {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -48,11 +48,11 @@ public class JettyAcegiUserRealmTests extends TestCase {
junit.textui.TestRunner.run(JettyAcegiUserRealmTests.class); junit.textui.TestRunner.run(JettyAcegiUserRealmTests.class);
} }
private JettyAcegiUserRealm makeAdapter(String fileName) private JettySpringSecurityUserRealm makeAdapter(String fileName)
throws Exception { throws Exception {
String useFile = "org/springframework/security/adapters/" + fileName; String useFile = "org/springframework/security/adapters/" + fileName;
return new JettyAcegiUserRealm(REALM_NAME, ADAPTER_KEY, useFile); return new JettySpringSecurityUserRealm(REALM_NAME, ADAPTER_KEY, useFile);
} }
public final void setUp() throws Exception { public final void setUp() throws Exception {
@ -62,7 +62,7 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean() public void testAdapterAbortsIfAppContextDoesNotContainAnAuthenticationBean()
throws Exception { throws Exception {
try { try {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-invalid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-invalid.xml");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("Bean context must contain at least one bean of type AuthenticationManager", assertEquals("Bean context must contain at least one bean of type AuthenticationManager",
@ -73,14 +73,14 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfNoAppContextSpecified() public void testAdapterAbortsIfNoAppContextSpecified()
throws Exception { throws Exception {
try { try {
new JettyAcegiUserRealm(REALM_NAME, ADAPTER_KEY, null); new JettySpringSecurityUserRealm(REALM_NAME, ADAPTER_KEY, null);
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("appContextLocation must be specified", expected.getMessage()); assertEquals("appContextLocation must be specified", expected.getMessage());
} }
try { try {
new JettyAcegiUserRealm(REALM_NAME, ADAPTER_KEY, ""); new JettySpringSecurityUserRealm(REALM_NAME, ADAPTER_KEY, "");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("appContextLocation must be specified", expected.getMessage()); assertEquals("appContextLocation must be specified", expected.getMessage());
@ -89,14 +89,14 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfNoKeySpecified() throws Exception { public void testAdapterAbortsIfNoKeySpecified() throws Exception {
try { try {
new JettyAcegiUserRealm(REALM_NAME, null, "SOME_PATH"); new JettySpringSecurityUserRealm(REALM_NAME, null, "SOME_PATH");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("key must be specified", expected.getMessage()); assertEquals("key must be specified", expected.getMessage());
} }
try { try {
new JettyAcegiUserRealm(REALM_NAME, "", "SOME_PATH"); new JettySpringSecurityUserRealm(REALM_NAME, "", "SOME_PATH");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("key must be specified", expected.getMessage()); assertEquals("key must be specified", expected.getMessage());
@ -106,14 +106,14 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsIfNoRealmNameSpecified() public void testAdapterAbortsIfNoRealmNameSpecified()
throws Exception { throws Exception {
try { try {
new JettyAcegiUserRealm(null, ADAPTER_KEY, "SOME_PATH"); new JettySpringSecurityUserRealm(null, ADAPTER_KEY, "SOME_PATH");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("realm must be specified", expected.getMessage()); assertEquals("realm must be specified", expected.getMessage());
} }
try { try {
new JettyAcegiUserRealm(null, ADAPTER_KEY, "SOME_PATH"); new JettySpringSecurityUserRealm(null, ADAPTER_KEY, "SOME_PATH");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertEquals("realm must be specified", expected.getMessage()); assertEquals("realm must be specified", expected.getMessage());
@ -123,7 +123,7 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterAbortsWithIncorrectApplicationContextLocation() public void testAdapterAbortsWithIncorrectApplicationContextLocation()
throws Exception { throws Exception {
try { try {
new JettyAcegiUserRealm(REALM_NAME, ADAPTER_KEY, "SOME_INVALID_LOCATION"); new JettySpringSecurityUserRealm(REALM_NAME, ADAPTER_KEY, "SOME_INVALID_LOCATION");
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertTrue(expected.getMessage().startsWith("Cannot locate")); assertTrue(expected.getMessage().startsWith("Cannot locate"));
@ -132,36 +132,36 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAdapterIdentifiesTheRealmItManages() public void testAdapterIdentifiesTheRealmItManages()
throws Exception { throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertEquals(REALM_NAME, adapter.getName()); assertEquals(REALM_NAME, adapter.getName());
} }
public void testAdapterStartsUpSuccess() throws Exception { public void testAdapterStartsUpSuccess() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertTrue(true); assertTrue(true);
} }
public void testAuthenticationFailsForIncorrectPassword() public void testAuthenticationFailsForIncorrectPassword()
throws Exception { throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertEquals(null, adapter.authenticate("marissa", "kangaroo", null)); assertEquals(null, adapter.authenticate("marissa", "kangaroo", null));
} }
public void testAuthenticationFailsForIncorrectUserName() public void testAuthenticationFailsForIncorrectUserName()
throws Exception { throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertEquals(null, adapter.authenticate("melissa", "koala", null)); assertEquals(null, adapter.authenticate("melissa", "koala", null));
} }
public void testAuthenticationSuccess() throws Exception { public void testAuthenticationSuccess() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
UserPrincipal result = adapter.authenticate("marissa", "koala", null); UserPrincipal result = adapter.authenticate("marissa", "koala", null);
if (!(result instanceof JettyAcegiUserToken)) { if (!(result instanceof JettySpringSecurityUserToken)) {
fail("Should have returned JettyAcegiUserToken"); fail("Should have returned JettySpringSecurityUserToken");
} }
JettyAcegiUserToken castResult = (JettyAcegiUserToken) result; JettySpringSecurityUserToken castResult = (JettySpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -171,36 +171,36 @@ public class JettyAcegiUserRealmTests extends TestCase {
public void testAuthenticationWithNullPasswordHandledGracefully() public void testAuthenticationWithNullPasswordHandledGracefully()
throws Exception { throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertEquals(null, adapter.authenticate("marissa", null, null)); assertEquals(null, adapter.authenticate("marissa", null, null));
} }
public void testAuthenticationWithNullUserNameHandledGracefully() public void testAuthenticationWithNullUserNameHandledGracefully()
throws Exception { throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertEquals(null, adapter.authenticate(null, "koala", null)); assertEquals(null, adapter.authenticate(null, "koala", null));
} }
public void testDisassociateImplemented() throws Exception { public void testDisassociateImplemented() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
adapter.disassociate(new MockUserPrincipal()); adapter.disassociate(new MockUserPrincipal());
assertTrue(true); assertTrue(true);
} }
public void testGetAuthenticationManager() throws Exception { public void testGetAuthenticationManager() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
assertTrue(adapter.getAuthenticationManager() != null); assertTrue(adapter.getAuthenticationManager() != null);
} }
public void testLogoutImplemented() throws Exception { public void testLogoutImplemented() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
adapter.logout(new MockUserPrincipal()); adapter.logout(new MockUserPrincipal());
assertTrue(true); assertTrue(true);
} }
public void testNoArgsConstructor() { public void testNoArgsConstructor() {
try { try {
new JettyAcegiUserRealm(); new JettySpringSecurityUserRealm();
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertTrue(true); assertTrue(true);
@ -208,13 +208,13 @@ public class JettyAcegiUserRealmTests extends TestCase {
} }
public void testPopRoleImplemented() throws Exception { public void testPopRoleImplemented() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
MockUserPrincipal user = new MockUserPrincipal(); MockUserPrincipal user = new MockUserPrincipal();
assertEquals(user, adapter.popRole(user)); assertEquals(user, adapter.popRole(user));
} }
public void testPushRoleImplemented() throws Exception { public void testPushRoleImplemented() throws Exception {
JettyAcegiUserRealm adapter = makeAdapter("adaptertest-valid.xml"); JettySpringSecurityUserRealm adapter = makeAdapter("adaptertest-valid.xml");
MockUserPrincipal user = new MockUserPrincipal(); MockUserPrincipal user = new MockUserPrincipal();
assertEquals(user, adapter.pushRole(user, "SOME_ROLE")); assertEquals(user, adapter.pushRole(user, "SOME_ROLE"));
} }

View File

@ -22,34 +22,25 @@ import org.springframework.security.GrantedAuthorityImpl;
/** /**
* Tests {@link JettyAcegiUserToken}. * Tests {@link JettySpringSecurityUserToken}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:JettySpringSecurityUserTokenTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class JettyAcegiUserTokenTests extends TestCase { public class JettySpringSecurityUserTokenTests extends TestCase {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public JettyAcegiUserTokenTests() { public JettySpringSecurityUserTokenTests() {
super();
} }
public JettyAcegiUserTokenTests(String arg0) { public JettySpringSecurityUserTokenTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) {
junit.textui.TestRunner.run(JettyAcegiUserTokenTests.class);
}
public final void setUp() throws Exception {
super.setUp();
}
public void testGetters() throws Exception { public void testGetters() throws Exception {
JettyAcegiUserToken token = new JettyAcegiUserToken("my_password", "Test", "Password", JettySpringSecurityUserToken token = new JettySpringSecurityUserToken("my_password", "Test", "Password",
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")}); new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
assertEquals("Test", token.getPrincipal()); assertEquals("Test", token.getPrincipal());
assertEquals("Password", token.getCredentials()); assertEquals("Password", token.getCredentials());
@ -59,7 +50,7 @@ public class JettyAcegiUserTokenTests extends TestCase {
public void testNoArgsConstructor() { public void testNoArgsConstructor() {
try { try {
new JettyAcegiUserToken(); new JettySpringSecurityUserToken();
fail("Should have thrown IllegalArgumentException"); fail("Should have thrown IllegalArgumentException");
} catch (IllegalArgumentException expected) { } catch (IllegalArgumentException expected) {
assertTrue(true); assertTrue(true);

View File

@ -21,7 +21,7 @@ import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationManager; import org.springframework.security.AuthenticationManager;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
@ -41,12 +41,12 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* Adapter to enable Resin to authenticate via the Acegi Security System for Spring.<p>Returns a {@link * Adapter to enable Resin to authenticate via Spring Security.<p>Returns a {@link
* PrincipalAcegiUserToken} to Resin's authentication system, which is subsequently available via * PrincipalSpringSecurityUserToken} to Resin's authentication system, which is subsequently available via
* <code>HttpServletRequest.getUserPrincipal()</code>.</p> * <code>HttpServletRequest.getUserPrincipal()</code>.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:ResinAcegiAuthenticator.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class ResinAcegiAuthenticator extends AbstractAuthenticator { public class ResinAcegiAuthenticator extends AbstractAuthenticator {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
@ -98,15 +98,15 @@ public class ResinAcegiAuthenticator extends AbstractAuthenticator {
public boolean isUserInRole(HttpServletRequest request, HttpServletResponse response, ServletContext application, public boolean isUserInRole(HttpServletRequest request, HttpServletResponse response, ServletContext application,
Principal principal, String role) { Principal principal, String role) {
if (!(principal instanceof PrincipalAcegiUserToken)) { if (!(principal instanceof PrincipalSpringSecurityUserToken)) {
if (logger.isWarnEnabled()) { if (logger.isWarnEnabled()) {
logger.warn("Expected passed principal to be of type PrincipalAcegiUserToken"); logger.warn("Expected passed principal to be of type PrincipalSpringSecurityUserToken");
} }
return false; return false;
} }
PrincipalAcegiUserToken test = (PrincipalAcegiUserToken) principal; PrincipalSpringSecurityUserToken test = (PrincipalSpringSecurityUserToken) principal;
return test.isUserInRole(role); return test.isUserInRole(role);
} }
@ -133,7 +133,7 @@ public class ResinAcegiAuthenticator extends AbstractAuthenticator {
return null; return null;
} }
return new PrincipalAcegiUserToken(this.key, response.getPrincipal().toString(), return new PrincipalSpringSecurityUserToken(this.key, response.getPrincipal().toString(),
response.getCredentials().toString(), response.getAuthorities(), response.getPrincipal()); response.getCredentials().toString(), response.getAuthorities(), response.getPrincipal());
} }

View File

@ -20,7 +20,7 @@ import junit.framework.TestCase;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import java.security.Principal; import java.security.Principal;
@ -31,7 +31,7 @@ import javax.servlet.ServletException;
* Tests {@link ResinAcegiAuthenticator}. * Tests {@link ResinAcegiAuthenticator}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id:ResinAcegiAuthenticatorTests.java 2151 2007-09-22 11:54:13Z luke_t $
*/ */
public class ResinAcegiAuthenticatorTests extends TestCase { public class ResinAcegiAuthenticatorTests extends TestCase {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -164,11 +164,11 @@ public class ResinAcegiAuthenticatorTests extends TestCase {
Principal result = adapter.loginImpl("marissa", "koala"); Principal result = adapter.loginImpl("marissa", "koala");
if (!(result instanceof PrincipalAcegiUserToken)) { if (!(result instanceof PrincipalSpringSecurityUserToken)) {
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result; PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -185,11 +185,11 @@ public class ResinAcegiAuthenticatorTests extends TestCase {
Principal result = adapter.loginImpl(null, null, null, "marissa", "koala"); Principal result = adapter.loginImpl(null, null, null, "marissa", "koala");
if (!(result instanceof PrincipalAcegiUserToken)) { if (!(result instanceof PrincipalSpringSecurityUserToken)) {
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result; PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) result;
assertEquals("marissa", castResult.getPrincipal()); assertEquals("marissa", castResult.getPrincipal());
assertEquals("koala", castResult.getCredentials()); assertEquals("koala", castResult.getCredentials());
assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TELLER", castResult.getAuthorities()[0].getAuthority());
@ -247,7 +247,7 @@ public class ResinAcegiAuthenticatorTests extends TestCase {
public void testHasRoleWithPrincipalAcegiUserToken() public void testHasRoleWithPrincipalAcegiUserToken()
throws Exception { throws Exception {
PrincipalAcegiUserToken token = new PrincipalAcegiUserToken("KEY", "Test", "Password", PrincipalSpringSecurityUserToken token = new PrincipalSpringSecurityUserToken("KEY", "Test", "Password",
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")}, new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")},
null); null);
ResinAcegiAuthenticator adapter = new ResinAcegiAuthenticator(); ResinAcegiAuthenticator adapter = new ResinAcegiAuthenticator();

View File

@ -20,24 +20,25 @@ import org.springframework.context.support.ResourceBundleMessageSource;
/** /**
* The default <code>MessageSource</code> used by Acegi Security.<p>All Acegi Security classes requiring messge * The default <code>MessageSource</code> used by Spring Security.
* localization will by default use this class. However, all such classes will also implement * <p>All Spring Security classes requiring messge localization will by default use this class.
* <code>MessageSourceAware</code> so that the application context can inject an alternative message source. Therefore * However, all such classes will also implement <code>MessageSourceAware</code> so that the application context can
* this class is only used when the deployment environment has not specified an alternative message source.</p> * inject an alternative message source. Therefore this class is only used when the deployment environment has not
* specified an alternative message source.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class AcegiMessageSource extends ResourceBundleMessageSource { public class SpringSecurityMessageSource extends ResourceBundleMessageSource {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public AcegiMessageSource() { public SpringSecurityMessageSource() {
setBasename("org.springframework.security.messages"); setBasename("org.springframework.security.messages");
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static MessageSourceAccessor getAccessor() { public static MessageSourceAccessor getAccessor() {
return new MessageSourceAccessor(new AcegiMessageSource()); return new MessageSourceAccessor(new SpringSecurityMessageSource());
} }
} }

View File

@ -35,7 +35,7 @@ import java.util.Vector;
* Authentication#getPrincipal()} or {@link Authentication#getAuthorities()}. The principal object or granted * Authentication#getPrincipal()} or {@link Authentication#getAuthorities()}. The principal object or granted
* authorities object has its <code>Object.equals(recipient)</code> method called to make the decision as to whether * authorities object has its <code>Object.equals(recipient)</code> method called to make the decision as to whether
* the recipient in the <code>BasicAclEntry</code> is the same as the principal or granted authority.</p> * the recipient in the <code>BasicAclEntry</code> is the same as the principal or granted authority.</p>
* <P>This class should prove an adequate ACLs resolver if you're using standard Acegi Security classes. This is * <P>This class should prove an adequate ACLs resolver if you're using standard Spring Security classes. This is
* because the typical <code>Authentication</code> token is <code>UsernamePasswordAuthenticationToken</code>, which * because the typical <code>Authentication</code> token is <code>UsernamePasswordAuthenticationToken</code>, which
* for its <code>principal</code> is usually a <code>String</code>. The <code>GrantedAuthorityImpl</code> is typically * for its <code>principal</code> is usually a <code>String</code>. The <code>GrantedAuthorityImpl</code> is typically
* used for granted authorities, which tests for equality based on a <code>String</code>. This means * used for granted authorities, which tests for equality based on a <code>String</code>. This means

View File

@ -15,7 +15,7 @@
package org.springframework.security.adapters; package org.springframework.security.adapters;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -41,7 +41,7 @@ import org.springframework.util.Assert;
public class AuthByAdapterProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware { public class AuthByAdapterProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String key; private String key;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -26,7 +26,7 @@ import java.security.Principal;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class PrincipalAcegiUserToken extends AbstractAdapterAuthenticationToken implements Principal { public class PrincipalSpringSecurityUserToken extends AbstractAdapterAuthenticationToken implements Principal {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -36,7 +36,7 @@ public class PrincipalAcegiUserToken extends AbstractAdapterAuthenticationToken
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public PrincipalAcegiUserToken(String key, String username, String password, GrantedAuthority[] authorities, public PrincipalSpringSecurityUserToken(String key, String username, String password, GrantedAuthority[] authorities,
Object principal) { Object principal) {
super(key, authorities); super(key, authorities);
this.username = username; this.username = username;

View File

@ -15,7 +15,7 @@
package org.springframework.security.afterinvocation; package org.springframework.security.afterinvocation;
import org.springframework.security.AccessDeniedException; import org.springframework.security.AccessDeniedException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.ConfigAttribute; import org.springframework.security.ConfigAttribute;
import org.springframework.security.ConfigAttributeDefinition; import org.springframework.security.ConfigAttributeDefinition;
@ -58,7 +58,7 @@ public class AclEntryAfterInvocationProvider extends AbstractAclProvider impleme
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================

View File

@ -16,7 +16,7 @@
package org.springframework.security.afterinvocation; package org.springframework.security.afterinvocation;
import org.springframework.security.AccessDeniedException; import org.springframework.security.AccessDeniedException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.ConfigAttribute; import org.springframework.security.ConfigAttribute;
import org.springframework.security.ConfigAttributeDefinition; import org.springframework.security.ConfigAttributeDefinition;
@ -72,7 +72,7 @@ public class BasicAclEntryAfterInvocationProvider implements AfterInvocationProv
private AclManager aclManager; private AclManager aclManager;
private Class processDomainObjectClass = Object.class; private Class processDomainObjectClass = Object.class;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String processConfigAttribute = "AFTER_ACL_READ"; private String processConfigAttribute = "AFTER_ACL_READ";
private int[] requirePermission = {SimpleAclEntry.READ}; private int[] requirePermission = {SimpleAclEntry.READ};

View File

@ -15,7 +15,7 @@
package org.springframework.security.concurrent; package org.springframework.security.concurrent;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
@ -39,7 +39,7 @@ public class ConcurrentSessionControllerImpl implements ConcurrentSessionControl
MessageSourceAware { MessageSourceAware {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private SessionRegistry sessionRegistry = new SessionRegistryImpl(); private SessionRegistry sessionRegistry = new SessionRegistryImpl();
private boolean exceptionIfMaximumExceeded = false; private boolean exceptionIfMaximumExceeded = false;
private int maximumSessions = 1; private int maximumSessions = 1;

View File

@ -22,11 +22,11 @@ import java.io.Serializable;
/** /**
* Represents a record of a session within the Acegi Security framework.<p>This is primarily used for concurrent * Represents a record of a session within the Spring Security framework.
* session support.</p> * <p>This is primarily used for concurrent session support.</p>
* <p>Sessions have three states: active, expired, and destroyed. A session can that is invalidated by * <p>Sessions have three states: active, expired, and destroyed. A session can that is invalidated by
* <code>session.invalidate()</code> or via Servlet Container management is considered "destroyed". An "expired" * <code>session.invalidate()</code> or via Servlet Container management is considered "destroyed". An "expired"
* session, on the other hand, is a session that Acegi Security wants to end because it was selected for removal for * session, on the other hand, is a session that Spring Security wants to end because it was selected for removal for
* some reason (generally as it was the least recently used session and the maximum sessions for the user were * some reason (generally as it was the least recently used session and the maximum sessions for the user were
* reached). An "expired" session is removed as soon as possible by a <code>Filter</code>.</p> * reached). An "expired" session is removed as soon as possible by a <code>Filter</code>.</p>
* *

View File

@ -17,7 +17,7 @@ package org.springframework.security.intercept;
import org.springframework.security.AccessDecisionManager; import org.springframework.security.AccessDecisionManager;
import org.springframework.security.AccessDeniedException; import org.springframework.security.AccessDeniedException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.AfterInvocationManager; import org.springframework.security.AfterInvocationManager;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationCredentialsNotFoundException; import org.springframework.security.AuthenticationCredentialsNotFoundException;
@ -134,7 +134,7 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
private AuthenticationManager authenticationManager; private AuthenticationManager authenticationManager;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private RunAsManager runAsManager = new NullRunAsManager(); private RunAsManager runAsManager = new NullRunAsManager();

View File

@ -5,17 +5,17 @@ Actually enforces the security and ties the whole security system together.
A <i>secure object</i> is a term frequently used throughout the security A <i>secure object</i> is a term frequently used throughout the security
system. It does <b>not</b> refer to a business object that is being system. It does <b>not</b> refer to a business object that is being
secured, but instead refers to some infrastructure object that can have secured, but instead refers to some infrastructure object that can have
security facilities provided for it by the Acegi Security System for security facilities provided for it by Spring Security.
Spring. For example, one secure object would be For example, one secure object would be <code>MethodInvocation</code>,
<code>MethodInvocation</code>, whilst another would be HTTP {@link whilst another would be HTTP
org.springframwork.security.intercept.web.FilterInvocation}. Note these are {@link org.springframwork.security.intercept.web.FilterInvocation}. Note these are
infrastructure objects and their design allows them to represent a large infrastructure objects and their design allows them to represent a large
variety of actual resources that might need to be secured, such as business variety of actual resources that might need to be secured, such as business
objects or HTTP request URLs. objects or HTTP request URLs.
</p> </p>
<P>Each secure object typically has its <P>Each secure object typically has its
own <code>org.acegisecurity.intercept</code> package. own <code>org.springframwork.security.intercept</code> package.
Each package usually includes a concrete security interceptor (which Each package usually includes a concrete security interceptor (which
subclasses {@link org.springframework.security.intercept.AbstractSecurityInterceptor}, subclasses {@link org.springframework.security.intercept.AbstractSecurityInterceptor},
an appropriate {@link org.springframework.security.intercept.ObjectDefinitionSource} an appropriate {@link org.springframework.security.intercept.ObjectDefinitionSource}

View File

@ -41,7 +41,7 @@ import javax.servlet.ServletResponse;
public class FilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter { public class FilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final String FILTER_APPLIED = "__acegi_security_filterSecurityInterceptor_filterApplied"; private static final String FILTER_APPLIED = "__spring_security_filterSecurityInterceptor_filterApplied";
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================

View File

@ -15,7 +15,7 @@
package org.springframework.security.ldap; package org.springframework.security.ldap;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -78,7 +78,7 @@ public class DefaultInitialDirContextFactory implements InitialDirContextFactory
/** Allows extra environment variables to be added at config time. */ /** Allows extra environment variables to be added at config time. */
private Map extraEnvVars = null; private Map extraEnvVars = null;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
/** Type of authentication within LDAP; default is simple. */ /** Type of authentication within LDAP; default is simple. */
private String authenticationType = "simple"; private String authenticationType = "simple";

View File

@ -50,7 +50,7 @@ import javax.naming.directory.SearchResult;
/** /**
* LDAP equivalent of the Spring JdbcTemplate class. * LDAP equivalent of the Spring JdbcTemplate class.
* <p> * <p>
* This is mainly intended to simplify Ldap access within Acegi Security's LDAP-related services. * This is mainly intended to simplify Ldap access within Spring Security's LDAP-related services.
* </p> * </p>
* *
* @author Ben Alex * @author Ben Alex

View File

@ -1,6 +1,6 @@
<html> <html>
<body> <body>
Provides core Acegi Security System for Spring interfaces and classes. Provides core Spring Security interfaces and classes.
</body> </body>
</html> </html>

View File

@ -17,7 +17,7 @@ package org.springframework.security.providers;
import org.springframework.security.AbstractAuthenticationManager; import org.springframework.security.AbstractAuthenticationManager;
import org.springframework.security.AccountExpiredException; import org.springframework.security.AccountExpiredException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationServiceException; import org.springframework.security.AuthenticationServiceException;
@ -108,7 +108,7 @@ public class ProviderManager extends AbstractAuthenticationManager implements In
private ApplicationEventPublisher applicationEventPublisher; private ApplicationEventPublisher applicationEventPublisher;
private ConcurrentSessionController sessionController = new NullConcurrentSessionController(); private ConcurrentSessionController sessionController = new NullConcurrentSessionController();
private List providers; private List providers;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private Properties exceptionMappings = new Properties(); private Properties exceptionMappings = new Properties();
static { static {

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.anonymous; package org.springframework.security.providers.anonymous;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -42,7 +42,7 @@ public class AnonymousAuthenticationProvider implements AuthenticationProvider,
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String key; private String key;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.cas; package org.springframework.security.providers.cas;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -58,7 +58,7 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia
private CasAuthoritiesPopulator casAuthoritiesPopulator; private CasAuthoritiesPopulator casAuthoritiesPopulator;
private CasProxyDecider casProxyDecider; private CasProxyDecider casProxyDecider;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private StatelessTicketCache statelessTicketCache; private StatelessTicketCache statelessTicketCache;
private String key; private String key;
private TicketValidator ticketValidator; private TicketValidator ticketValidator;

View File

@ -26,7 +26,7 @@ import org.springframework.security.userdetails.UserDetails;
* *
* <p> * <p>
* CAS does not provide the authorities (roles) granted to a user. It merely * CAS does not provide the authorities (roles) granted to a user. It merely
* authenticates their identity. As the Acegi Security System for Spring needs * authenticates their identity. As Spring Security needs
* to know the authorities granted to a user in order to construct a valid * to know the authorities granted to a user in order to construct a valid
* <code>Authentication</code> object, implementations of this interface will * <code>Authentication</code> object, implementations of this interface will
* provide this information. * provide this information.
@ -36,7 +36,7 @@ import org.springframework.security.userdetails.UserDetails;
* A {@link UserDetails} is returned by implementations. The * A {@link UserDetails} is returned by implementations. The
* <code>UserDetails</code> must, at minimum, contain the username and * <code>UserDetails</code> must, at minimum, contain the username and
* <code>GrantedAuthority[]</code> objects applicable to the CAS-authenticated * <code>GrantedAuthority[]</code> objects applicable to the CAS-authenticated
* user. Note that Acegi Security ignores the password and enabled/disabled * user. Note that Spring Security ignores the password and enabled/disabled
* status of the <code>UserDetails</code> because this is * status of the <code>UserDetails</code> because this is
* authentication-related and should have been enforced by the CAS server. The * authentication-related and should have been enforced by the CAS server. The
* <code>UserDetails</code> returned by implementations is stored in the * <code>UserDetails</code> returned by implementations is stored in the

View File

@ -37,7 +37,7 @@ package org.springframework.security.providers.cas;
* <P> * <P>
* To avoid this issue with stateless callers, it is expected stateless callers * To avoid this issue with stateless callers, it is expected stateless callers
* will obtain a single service ticket or proxy ticket, and then present this * will obtain a single service ticket or proxy ticket, and then present this
* same ticket to the Acegi Security System secured application on each * same ticket to the Spring Security secured application on each
* occasion. As no <code>HttpSession</code> is available for such callers, the * occasion. As no <code>HttpSession</code> is available for such callers, the
* affirmative CAS validation outcome cannot be stored in this location. * affirmative CAS validation outcome cannot be stored in this location.
* </p> * </p>

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.cas.proxy; package org.springframework.security.providers.cas.proxy;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.providers.cas.CasProxyDecider; import org.springframework.security.providers.cas.CasProxyDecider;
import org.springframework.security.providers.cas.ProxyUntrustedException; import org.springframework.security.providers.cas.ProxyUntrustedException;
@ -46,7 +46,7 @@ public class NamedCasProxyDecider implements CasProxyDecider, InitializingBean,
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private List validProxies; private List validProxies;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.cas.proxy; package org.springframework.security.providers.cas.proxy;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.providers.cas.CasProxyDecider; import org.springframework.security.providers.cas.CasProxyDecider;
import org.springframework.security.providers.cas.ProxyUntrustedException; import org.springframework.security.providers.cas.ProxyUntrustedException;
@ -45,7 +45,7 @@ public class RejectProxyTickets implements CasProxyDecider, MessageSourceAware,
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -69,14 +69,14 @@ public class CasProxyTicketValidator extends AbstractTicketValidator {
/** /**
* Optional callback URL to obtain a proxy-granting ticket from CAS. * Optional callback URL to obtain a proxy-granting ticket from CAS.
* <p>This callback URL belongs to the Acegi Security System for Spring secured application. We suggest you use * <p>This callback URL belongs to the Spring Security secured application. We suggest you use
* CAS' <code>ProxyTicketReceptor</code> servlet to receive this callback and manage the proxy-granting ticket list. * CAS' <code>ProxyTicketReceptor</code> servlet to receive this callback and manage the proxy-granting ticket list.
* The callback URL is usually something like * The callback URL is usually something like
* <code>https://www.mycompany.com/application/casProxy/receptor</code>. * <code>https://www.mycompany.com/application/casProxy/receptor</code>.
* </p> * </p>
* <p>If left <code>null</code>, the <code>CasAuthenticationToken</code> will not have a proxy granting * <p>If left <code>null</code>, the <code>CasAuthenticationToken</code> will not have a proxy granting
* ticket IOU and there will be no proxy-granting ticket callback. Accordingly, the Acegi Securty System for * ticket IOU and there will be no proxy-granting ticket callback. Accordingly, the Spring Securty
* Spring secured application will be unable to obtain a proxy ticket to call another CAS-secured service on * secured application will be unable to obtain a proxy ticket to call another CAS-secured service on
* behalf of the user. This is not really an issue for most applications.</p> * behalf of the user. This is not really an issue for most applications.</p>
* *
* @return the proxy callback URL, or <code>null</code> if not used * @return the proxy callback URL, or <code>null</code> if not used

View File

@ -16,7 +16,7 @@
package org.springframework.security.providers.dao; package org.springframework.security.providers.dao;
import org.springframework.security.AccountExpiredException; import org.springframework.security.AccountExpiredException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -69,7 +69,7 @@ public abstract class AbstractUserDetailsAuthenticationProvider implements Authe
MessageSourceAware { MessageSourceAware {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private UserCache userCache = new NullUserCache(); private UserCache userCache = new NullUserCache();
private boolean forcePrincipalAsString = false; private boolean forcePrincipalAsString = false;
protected boolean hideUserNotFoundExceptions = true; protected boolean hideUserNotFoundExceptions = true;

View File

@ -146,7 +146,7 @@ public class JaasAuthenticationProvider implements AuthenticationProvider, Appli
private LoginExceptionResolver loginExceptionResolver = new DefaultLoginExceptionResolver(); private LoginExceptionResolver loginExceptionResolver = new DefaultLoginExceptionResolver();
private Resource loginConfig; private Resource loginConfig;
private String loginContextName = "ACEGI"; private String loginContextName = "SPRINGSECURITY";
private AuthorityGranter[] authorityGranters; private AuthorityGranter[] authorityGranters;
private JaasAuthenticationCallbackHandler[] callbackHandlers; private JaasAuthenticationCallbackHandler[] callbackHandlers;
private ApplicationEventPublisher applicationEventPublisher; private ApplicationEventPublisher applicationEventPublisher;

View File

@ -28,7 +28,7 @@ import javax.security.auth.callback.UnsupportedCallbackException;
/** /**
* The most basic Callbacks to be handled when using a LoginContext from JAAS, are the NameCallback and * The most basic Callbacks to be handled when using a LoginContext from JAAS, are the NameCallback and
* PasswordCallback. The acegi security framework provides the JaasNameCallbackHandler specifically tailored to * PasswordCallback. Spring Security provides the JaasNameCallbackHandler specifically tailored to
* handling the NameCallback. <br> * handling the NameCallback. <br>
* *
* @author Ray Krueger * @author Ray Krueger

View File

@ -26,7 +26,7 @@ import javax.security.auth.callback.UnsupportedCallbackException;
/** /**
* The most basic Callbacks to be handled when using a LoginContext from JAAS, are the NameCallback and * The most basic Callbacks to be handled when using a LoginContext from JAAS, are the NameCallback and
* PasswordCallback. The acegi security framework provides the JaasPasswordCallbackHandler specifically tailored to * PasswordCallback. Spring Security provides the JaasPasswordCallbackHandler specifically tailored to
* handling the PasswordCallback. <br> * handling the PasswordCallback. <br>
* *
* @author Ray Krueger * @author Ray Krueger

View File

@ -22,7 +22,7 @@ import javax.security.auth.login.LoginException;
/** /**
* The JaasAuthenticationProvider takes an instance of LoginExceptionResolver * The JaasAuthenticationProvider takes an instance of LoginExceptionResolver
* to resolve LoginModule specific exceptions to Acegi exceptions. For * to resolve LoginModule specific exceptions to Spring Security exceptions. For
* instance, a configured login module could throw a * instance, a configured login module could throw a
* ScrewedUpPasswordException that extends LoginException, in this instance * ScrewedUpPasswordException that extends LoginException, in this instance
* the LoginExceptionResolver implementation would return a {@link * the LoginExceptionResolver implementation would return a {@link

View File

@ -31,13 +31,14 @@ import javax.security.auth.spi.LoginModule;
/** /**
* An implementation of {@link LoginModule} that uses an Acegi Security {@link * An implementation of {@link LoginModule} that uses a Spring Security {@link
* org.springframework.security.context.SecurityContext SecurityContext} to provide authentication.<p>This LoginModule * org.springframework.security.context.SecurityContext SecurityContext} to provide authentication.<p>This LoginModule
* provides opposite functionality to the {@link JaasAuthenticationProvider} API, and should not really be used in * provides opposite functionality to the {@link JaasAuthenticationProvider} API, and should not really be used in
* conjunction with it.</p> * conjunction with it.</p>
* <p>The {@link JaasAuthenticationProvider} allows Acegi to authenticate against Jaas.</p> * <p>The {@link JaasAuthenticationProvider} allows Spring Security to authenticate against Jaas.</p>
* <p>The SecurityContextLoginModule allows a Jaas based application to authenticate against Acegi. If there is no * <p>The SecurityContextLoginModule allows a Jaas based application to authenticate against Spring Security.
* Authentication in the {@link SecurityContextHolder} the login() method will throw a LoginException by default. * If there is no Authentication in the {@link SecurityContextHolder} the login() method will throw a LoginException
* by default.
* This functionality can be changed with the <tt>ignoreMissingAuthentication</tt> option by setting it to "true". * This functionality can be changed with the <tt>ignoreMissingAuthentication</tt> option by setting it to "true".
* Setting ignoreMissingAuthentication=true will tell the SecurityContextLoginModule to simply return false and be * Setting ignoreMissingAuthentication=true will tell the SecurityContextLoginModule to simply return false and be
* ignored if the authentication is null.</p> * ignored if the authentication is null.</p>
@ -59,7 +60,7 @@ public class SecurityContextLoginModule implements LoginModule {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
/** /**
* Abort the authentication process by forgetting the Acegi Security <code>Authentication</code>. * Abort the authentication process by forgetting the Spring Security <code>Authentication</code>.
* *
* @return true if this method succeeded, or false if this <code>LoginModule</code> should be ignored. * @return true if this method succeeded, or false if this <code>LoginModule</code> should be ignored.
* *
@ -76,7 +77,7 @@ public class SecurityContextLoginModule implements LoginModule {
} }
/** /**
* Authenticate the <code>Subject</code> (phase two) by adding the Acegi Security * Authenticate the <code>Subject</code> (phase two) by adding the Spring Security
* <code>Authentication</code> to the <code>Subject</code>'s principals. * <code>Authentication</code> to the <code>Subject</code>'s principals.
* *
* @return true if this method succeeded, or false if this <code>LoginModule</code> should be ignored. * @return true if this method succeeded, or false if this <code>LoginModule</code> should be ignored.
@ -103,7 +104,7 @@ public class SecurityContextLoginModule implements LoginModule {
/** /**
* Initialize this <code>LoginModule</code>. Ignores the callback handler, since the code establishing the * Initialize this <code>LoginModule</code>. Ignores the callback handler, since the code establishing the
* <code>LoginContext</code> likely won't provide one that understands Acegi Security. Also ignores the * <code>LoginContext</code> likely won't provide one that understands Spring Security. Also ignores the
* <code>sharedState</code> and <code>options</code> parameters, since none are recognized. * <code>sharedState</code> and <code>options</code> parameters, since none are recognized.
* *
* @param subject the <code>Subject</code> to be authenticated. <p> * @param subject the <code>Subject</code> to be authenticated. <p>
@ -120,7 +121,7 @@ public class SecurityContextLoginModule implements LoginModule {
} }
/** /**
* Authenticate the <code>Subject</code> (phase one) by extracting the Acegi Security * Authenticate the <code>Subject</code> (phase one) by extracting the Spring Security
* <code>Authentication</code> from the current <code>SecurityContext</code>. * <code>Authentication</code> from the current <code>SecurityContext</code>.
* *
* @return true if the authentication succeeded, or false if this <code>LoginModule</code> should be ignored. * @return true if the authentication succeeded, or false if this <code>LoginModule</code> should be ignored.

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.ldap.authenticator; package org.springframework.security.providers.ldap.authenticator;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.ldap.InitialDirContextFactory; import org.springframework.security.ldap.InitialDirContextFactory;
import org.springframework.security.ldap.LdapUserSearch; import org.springframework.security.ldap.LdapUserSearch;
@ -49,7 +49,7 @@ public abstract class AbstractLdapAuthenticator implements LdapAuthenticator, In
/** Optional search object which can be used to locate a user when a simple DN match isn't sufficient */ /** Optional search object which can be used to locate a user when a simple DN match isn't sufficient */
private LdapUserSearch userSearch; private LdapUserSearch userSearch;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
/** /**
* The suffix to be added to the DN patterns, worked out internally from the root DN of the configured * The suffix to be added to the DN patterns, worked out internally from the root DN of the configured

View File

@ -38,20 +38,27 @@ import javax.naming.directory.SearchControls;
/** /**
* The default strategy for obtaining user role information from the directory. * The default strategy for obtaining user role information from the directory.
* <p/>
* <p>It obtains roles by performing a search for "groups" the user is a member of.</p> * <p>It obtains roles by performing a search for "groups" the user is a member of.</p>
* <p/> * <p/>
* <p/>
* A typical group search scenario would be where each group/role is specified using the <tt>groupOfNames</tt> * A typical group search scenario would be where each group/role is specified using the <tt>groupOfNames</tt>
* (or <tt>groupOfUniqueNames</tt>) LDAP objectClass and the user's DN is listed in the <tt>member</tt> (or * (or <tt>groupOfUniqueNames</tt>) LDAP objectClass and the user's DN is listed in the <tt>member</tt> (or
* <tt>uniqueMember</tt>) attribute to indicate that they should be assigned that role. The following LDIF sample has * <tt>uniqueMember</tt>) attribute to indicate that they should be assigned that role. The following LDIF sample has
* the groups stored under the DN <tt>ou=groups,dc=springframework,dc=org</tt> and a group called "developers" with * the groups stored under the DN <tt>ou=groups,dc=springframework,dc=org</tt> and a group called "developers" with
* "ben" and "marissa" as members: * "ben" and "marissa" as members:
* <pre> * <pre>
* dn: ou=groups,dc=springframework,dc=orgobjectClass: top * dn: ou=groups,dc=springframework,dc=org
* objectClass: organizationalUnitou: groupsdn: cn=developers,ou=groups,dc=springframework,dc=org * objectClass: top
* objectClass: groupOfNamesobjectClass: topcn: developersdescription: Acegi Security Developers * objectClass: organizationalUnit
* member: uid=ben,ou=people,dc=springframework,dc=orgmember: uid=marissa,ou=people,dc=springframework,dc=orgou: developer * ou: groups
*
* dn: cn=developers,ou=groups,dc=springframework,dc=org
* objectClass: groupOfNameso
* objectClass: top
* cn: developers
* description: Spring Security Developers
* member: uid=ben,ou=people,dc=springframework,dc=org
* member: uid=marissa,ou=people,dc=springframework,dc=org
* ou: developer
* </pre> * </pre>
* </p> * </p>
* <p/> * <p/>
@ -65,7 +72,7 @@ import javax.naming.directory.SearchControls;
* <p>The configuration below shows how the group search might be performed with the above schema. * <p>The configuration below shows how the group search might be performed with the above schema.
* <pre> * <pre>
* &lt;bean id="ldapAuthoritiesPopulator" * &lt;bean id="ldapAuthoritiesPopulator"
* class="org.springframework.security.providers.ldap.populator.DefaultLdapAuthoritiesPopulator"> * class="org.springframework.security.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
* &lt;constructor-arg>&lt;ref local="initialDirContextFactory"/>&lt;/constructor-arg> * &lt;constructor-arg>&lt;ref local="initialDirContextFactory"/>&lt;/constructor-arg>
* &lt;constructor-arg>&lt;value>ou=groups&lt;/value>&lt;/constructor-arg> * &lt;constructor-arg>&lt;value>ou=groups&lt;/value>&lt;/constructor-arg>
* &lt;property name="groupRoleAttribute">&lt;value>ou&lt;/value>&lt;/property> * &lt;property name="groupRoleAttribute">&lt;value>ou&lt;/value>&lt;/property>

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.rememberme; package org.springframework.security.providers.rememberme;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -47,7 +47,7 @@ public class RememberMeAuthenticationProvider implements AuthenticationProvider,
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String key; private String key;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.x509; package org.springframework.security.providers.x509;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -53,7 +53,7 @@ public class X509AuthenticationProvider implements AuthenticationProvider, Initi
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private X509AuthoritiesPopulator x509AuthoritiesPopulator; private X509AuthoritiesPopulator x509AuthoritiesPopulator;
private X509UserCache userCache = new NullX509UserCache(); private X509UserCache userCache = new NullX509UserCache();

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.x509.populator; package org.springframework.security.providers.x509.populator;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
import org.springframework.security.AuthenticationServiceException; import org.springframework.security.AuthenticationServiceException;
@ -53,7 +53,7 @@ public class DaoX509AuthoritiesPopulator implements X509AuthoritiesPopulator, In
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private Pattern subjectDNPattern; private Pattern subjectDNPattern;
private String subjectDNRegex = "CN=(.*?),"; private String subjectDNRegex = "CN=(.*?),";
private UserDetailsService userDetailsService; private UserDetailsService userDetailsService;

View File

@ -15,7 +15,7 @@
package org.springframework.security.runas; package org.springframework.security.runas;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -41,7 +41,7 @@ import org.springframework.util.Assert;
public class RunAsImplAuthenticationProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware { public class RunAsImplAuthenticationProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String key; private String key;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================

View File

@ -173,7 +173,7 @@ public class AuthorizeTag extends TagSupport {
* returns a <code>null</code> string as the return value of {@link * returns a <code>null</code> string as the return value of {@link
* org.springframework.security.GrantedAuthority#getAuthority()}. * org.springframework.security.GrantedAuthority#getAuthority()}.
* </p> * </p>
* <p>Reported by rawdave, on Fri Feb 04, 2005 2:11 pm in the Acegi Security System for Spring forums.</p> * <p>Reported by rawdave, on Fri Feb 04, 2005 2:11 pm in the Spring Security forum.</p>
* *
* @param granted The authorities granted by the authentication. May be any implementation of {@link * @param granted The authorities granted by the authentication. May be any implementation of {@link
* GrantedAuthority} that does <strong>not</strong> return <code>null</code> from {@link * GrantedAuthority} that does <strong>not</strong> return <code>null</code> from {@link

View File

@ -29,7 +29,7 @@ import org.springframework.context.ApplicationContext;
/** /**
* Wrapper the implementation of Acegi Security for Spring JSP tag includes: * Wrapper the implementation of Spring Security JSP tag includes:
* {@link AuthenticationTag}, {@link AclTag}, {@link AuthorizeTag} * {@link AuthenticationTag}, {@link AclTag}, {@link AuthorizeTag}
* *
* @author Wang Qi * @author Wang Qi

View File

@ -15,7 +15,7 @@
package org.springframework.security.ui; package org.springframework.security.ui;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationManager; import org.springframework.security.AuthenticationManager;
@ -157,7 +157,7 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
protected final Log logger = LogFactory.getLog(this.getClass()); protected final Log logger = LogFactory.getLog(this.getClass());
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private Properties exceptionMappings = new Properties(); private Properties exceptionMappings = new Properties();

View File

@ -42,7 +42,7 @@ public class WebAuthenticationDetails implements SessionIdentifierAware, Seriali
* *
* <p> * <p>
* NB: This constructor will cause a <code>HttpSession</code> to be created * NB: This constructor will cause a <code>HttpSession</code> to be created
* (this is considered reasonable as all Acegi Security authentication * (this is considered reasonable as all Spring Security authentication
* requests rely on <code>HttpSession</code> to store the * requests rely on <code>HttpSession</code> to store the
* <code>Authentication</code> between requests * <code>Authentication</code> between requests
* </p> * </p>

View File

@ -61,7 +61,7 @@ import org.springframework.util.Assert;
* which will prompt the user to authenticate again via BASIC authentication.</p> * which will prompt the user to authenticate again via BASIC authentication.</p>
* <p>Basic authentication is an attractive protocol because it is simple and widely deployed. However, it still * <p>Basic authentication is an attractive protocol because it is simple and widely deployed. However, it still
* transmits a password in clear text and as such is undesirable in many situations. Digest authentication is also * transmits a password in clear text and as such is undesirable in many situations. Digest authentication is also
* provided by Acegi Security and should be used instead of Basic authentication wherever possible. See {@link * provided by Spring Security and should be used instead of Basic authentication wherever possible. See {@link
* org.springframework.security.ui.digestauth.DigestProcessingFilter}.</p> * org.springframework.security.ui.digestauth.DigestProcessingFilter}.</p>
* <p>Note that if a {@link #rememberMeServices} is set, this filter will automatically send back remember-me * <p>Note that if a {@link #rememberMeServices} is set, this filter will automatically send back remember-me
* details to the client. Therefore, subsequent requests will not need to present a BASIC authentication header as * details to the client. Therefore, subsequent requests will not need to present a BASIC authentication header as

View File

@ -19,9 +19,10 @@ import org.springframework.beans.factory.InitializingBean;
/** /**
* Stores properties related to this CAS service.<P>Each web application capable of processing CAS tickets is known * Stores properties related to this CAS service.
* as a service. This class stores the properties that are relevant to the local CAS service, being the application * <p>Each web application capable of processing CAS tickets is known as a service.
* that is being secured by the Acegi Security System for Spring.</p> * This class stores the properties that are relevant to the local CAS service, being the application
* that is being secured by Spring Security.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
@ -41,9 +42,12 @@ public class ServiceProperties implements InitializingBean {
} }
/** /**
* Represents the service the user is authenticating to.<p>This service is the callback URL belonging to * Represents the service the user is authenticating to.
* the local Acegi Security System for Spring secured application. For example,</p> * <p>This service is the callback URL belonging to the local Spring Security System for Spring secured application.
* <code>https://www.mycompany.com/application/j_spring_cas_security_check</code> * For example,
* <pre>
* https://www.mycompany.com/application/j_spring_cas_security_check
* </pre>
* *
* @return the URL of the service the user is authenticating to * @return the URL of the service the user is authenticating to
*/ */

View File

@ -15,7 +15,7 @@
package org.springframework.security.ui.digestauth; package org.springframework.security.ui.digestauth;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
import org.springframework.security.AuthenticationServiceException; import org.springframework.security.AuthenticationServiceException;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
@ -93,7 +93,7 @@ public class DigestProcessingFilter implements Filter, InitializingBean, Message
private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl(); private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
private DigestProcessingFilterEntryPoint authenticationEntryPoint; private DigestProcessingFilterEntryPoint authenticationEntryPoint;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private UserCache userCache = new NullUserCache(); private UserCache userCache = new NullUserCache();
private UserDetailsService userDetailsService; private UserDetailsService userDetailsService;
private boolean passwordAlreadyEncoded = false; private boolean passwordAlreadyEncoded = false;

View File

@ -25,7 +25,7 @@ import javax.servlet.http.HttpServletResponse;
* Implement by a class that is capable of providing a remember-me service. * Implement by a class that is capable of providing a remember-me service.
* *
* <p> * <p>
* Acegi Security filters (namely {@link * Spring Security filters (namely {@link
* org.springframework.security.ui.AbstractProcessingFilter} and {@link * org.springframework.security.ui.AbstractProcessingFilter} and {@link
* org.springframework.security.ui.rememberme.RememberMeProcessingFilter} will call * org.springframework.security.ui.rememberme.RememberMeProcessingFilter} will call
* the methods provided by an implementation of this interface. * the methods provided by an implementation of this interface.
@ -44,7 +44,7 @@ import javax.servlet.http.HttpServletResponse;
* <p> * <p>
* This interface does not define how remember-me services should offer a * This interface does not define how remember-me services should offer a
* "cancel all remember-me tokens" type capability, as this will be * "cancel all remember-me tokens" type capability, as this will be
* implementation specific and requires no hooks into Acegi Security. * implementation specific and requires no hooks into Spring Security.
* </p> * </p>
* *
* @author Ben Alex * @author Ben Alex
@ -55,14 +55,14 @@ public interface RememberMeServices {
/** /**
* This method will be called whenever the <code>SecurityContextHolder</code> does not contain an * This method will be called whenever the <code>SecurityContextHolder</code> does not contain an
* <code>Authentication</code> and the Acegi Security system wishes to provide an implementation with an * <code>Authentication</code> object and Spring Security wishes to provide an implementation with an
* opportunity to authenticate the request using remember-me capabilities. Acegi Security makes no attempt * opportunity to authenticate the request using remember-me capabilities. Spring Security makes no attempt
* whatsoever to determine whether the browser has requested remember-me services or presented a valid cookie. * whatsoever to determine whether the browser has requested remember-me services or presented a valid cookie.
* Such determinations are left to the implementation. If a browser has presented an unauthorised cookie for * Such determinations are left to the implementation. If a browser has presented an unauthorised cookie for
* whatever reason, it should be silently ignored and invalidated using the <code>HttpServletResponse</code> * whatever reason, it should be silently ignored and invalidated using the <code>HttpServletResponse</code>
* object.<p>The returned <code>Authentication</code> must be acceptable to {@link * object.<p>The returned <code>Authentication</code> must be acceptable to {@link
* org.springframework.security.AuthenticationManager} or {@link org.springframework.security.providers.AuthenticationProvider} defined * org.springframework.security.AuthenticationManager} or
* by the web application. It is recommended {@link * {@link org.springframework.security.providers.AuthenticationProvider} defined by the web application. It is recommended {@link
* org.springframework.security.providers.rememberme.RememberMeAuthenticationToken} be used in most cases, as it has a * org.springframework.security.providers.rememberme.RememberMeAuthenticationToken} be used in most cases, as it has a
* corresponding authentication provider.</p> * corresponding authentication provider.</p>
* *

View File

@ -106,7 +106,7 @@ public class TokenBasedRememberMeServices implements RememberMeServices, Initial
public static final String SPRING_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY = "SPRING_SECURITY_HASHED_REMEMBER_ME_COOKIE"; public static final String SPRING_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY = "SPRING_SECURITY_HASHED_REMEMBER_ME_COOKIE";
public static final String DEFAULT_PARAMETER = "_acegi_security_remember_me"; public static final String DEFAULT_PARAMETER = "_spring_security_remember_me";
protected static final Log logger = LogFactory.getLog(TokenBasedRememberMeServices.class); protected static final Log logger = LogFactory.getLog(TokenBasedRememberMeServices.class);

View File

@ -16,7 +16,7 @@
package org.springframework.security.ui.switchuser; package org.springframework.security.ui.switchuser;
import org.springframework.security.AccountExpiredException; import org.springframework.security.AccountExpiredException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.AuthenticationCredentialsNotFoundException; import org.springframework.security.AuthenticationCredentialsNotFoundException;
import org.springframework.security.AuthenticationException; import org.springframework.security.AuthenticationException;
@ -70,7 +70,7 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* Switch User processing filter responsible for user context switching.<p>This filter is similar to Unix 'su' * Switch User processing filter responsible for user context switching.<p>This filter is similar to Unix 'su'
* however for Acegi-managed web applications. A common use-case for this feature is the ability to allow * however for Spring Security-managed web applications. A common use-case for this feature is the ability to allow
* higher-authority users (i.e. ROLE_ADMIN) to switch to a regular user (i.e. ROLE_USER).</p> * higher-authority users (i.e. ROLE_ADMIN) to switch to a regular user (i.e. ROLE_USER).</p>
* <p>This filter assumes that the user performing the switch will be required to be logged in as normal (i.e. * <p>This filter assumes that the user performing the switch will be required to be logged in as normal (i.e.
* ROLE_ADMIN user). The user will then access a page/controller that enables the administrator to specify who they * ROLE_ADMIN user). The user will then access a page/controller that enables the administrator to specify who they
@ -111,7 +111,7 @@ public class SwitchUserProcessingFilter implements Filter, InitializingBean, App
private ApplicationEventPublisher eventPublisher; private ApplicationEventPublisher eventPublisher;
private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl(); private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private String exitUserUrl = "/j_spring_security_exit_user"; private String exitUserUrl = "/j_spring_security_exit_user";
private String switchUserUrl = "/j_spring_security_switch_user"; private String switchUserUrl = "/j_spring_security_switch_user";
private String targetUrl; private String targetUrl;

View File

@ -31,17 +31,17 @@ import javax.servlet.http.HttpServletResponse;
/** /**
* Extends Acegi's AuthenticationProcessingFilter to pick up CA/Netegrity Siteminder headers.<P>Also provides a * Extends Spring Security's AuthenticationProcessingFilter to pick up CA/Netegrity Siteminder headers.
* backup form-based authentication and the ability set source key names.</p> * <p>Also provides a backup form-based authentication and the ability set source key names.</p>
* <P><B>Siteminder</B> must present two <B>headers</B> to this filter, a username and password. You must set the * <p><b>Siteminder</b> must present two <b>headers</b> to this filter, a username and password. You must set the
* header keys before this filter is used for authentication, otherwise Siteminder checks will be skipped. If the * header keys before this filter is used for authentication, otherwise Siteminder checks will be skipped. If the
* Siteminder check is unsuccessful (i.e. if the headers are not found), then the form parameters will be checked (see * Siteminder check is unsuccessful (i.e. if the headers are not found), then the form parameters will be checked (see
* next paragraph). This allows applications to optionally function even when their Siteminder infrastructure is * next paragraph). This allows applications to optionally function even when their Siteminder infrastructure is
* unavailable, as is often the case during development.</p> * unavailable, as is often the case during development.</p>
* <P><B>Login forms</B> must present two <B>parameters</B> to this filter: a username and password. If not * <p><b>Login forms</b> must present two <b>parameters</b> to this filter: a username and password. If not
* specified, the parameter names to use are contained in the static fields {@link #SPRING_SECURITY_FORM_USERNAME_KEY} * specified, the parameter names to use are contained in the static fields {@link #SPRING_SECURITY_FORM_USERNAME_KEY}
* and {@link #SPRING_SECURITY_FORM_PASSWORD_KEY}.</p> * and {@link #SPRING_SECURITY_FORM_PASSWORD_KEY}.</p>
* <P><B>Do not use this class directly.</B> Instead, configure <code>web.xml</code> to use the {@link * <p><b>Do not use this class directly.</b> Instead, configure <code>web.xml</code> to use the {@link
* org.springframework.security.util.FilterToBeanProxy}.</p> * org.springframework.security.util.FilterToBeanProxy}.</p>
*/ */
public class SiteminderAuthenticationProcessingFilter extends AuthenticationProcessingFilter { public class SiteminderAuthenticationProcessingFilter extends AuthenticationProcessingFilter {
@ -66,7 +66,7 @@ public class SiteminderAuthenticationProcessingFilter extends AuthenticationProc
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
/** /**
* Basic constructor. * Basic constructor.
*/ */
public SiteminderAuthenticationProcessingFilter() { public SiteminderAuthenticationProcessingFilter() {

View File

@ -34,7 +34,7 @@ import org.apache.commons.logging.LogFactory;
* <p> * <p>
* Therefore this class isn't actually responsible for the commencement of * Therefore this class isn't actually responsible for the commencement of
* authentication, as it is in the case of other providers. It will be called if * authentication, as it is in the case of other providers. It will be called if
* the certificate was rejected by Acegi's X509AuthenticationProvider, resulting * the certificate was rejected by Spring Security's X509AuthenticationProvider, resulting
* in a null authentication. * in a null authentication.
* </p> * </p>
* The <code>commence</code> method will always return an * The <code>commence</code> method will always return an

View File

@ -25,7 +25,7 @@ import java.io.Serializable;
* Provides core user information. * Provides core user information.
* *
* <p> * <p>
* Implementations are not used directly by Acegi Security for security * Implementations are not used directly by Spring Security for security
* purposes. They simply store user information which is later encapsulated * purposes. They simply store user information which is later encapsulated
* into {@link Authentication} objects. This allows non-security related user * into {@link Authentication} objects. This allows non-security related user
* information (such as email addresses, telephone numbers etc) to be stored * information (such as email addresses, telephone numbers etc) to be stored

View File

@ -51,7 +51,7 @@ import java.util.*;
* Hierarchical Roles will dramatically shorten your access rules (and also make the access rules much more elegant). * Hierarchical Roles will dramatically shorten your access rules (and also make the access rules much more elegant).
* </p> * </p>
* <p> * <p>
* Consider this access rule for Acegi's RoleVoter (background: every user that is authenticated should be * Consider this access rule for Spring Security's RoleVoter (background: every user that is authenticated should be
* able to log out):<br> * able to log out):<br>
* /logout.html=ROLE_A,ROLE_B,ROLE_AUTHENTICATED<br> * /logout.html=ROLE_A,ROLE_B,ROLE_AUTHENTICATED<br>
* With hierarchical roles this can now be shortened to:<br> * With hierarchical roles this can now be shortened to:<br>

View File

@ -20,8 +20,8 @@ import org.springframework.security.userdetails.UsernameNotFoundException;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
/** /**
* This class wraps Acegi's UserDetailsService in a way that its loadUserByUsername() * This class wraps Spring Security's <tt>UserDetailsService</tt> in a way that its <tt>loadUserByUsername()</tt>
* method returns wrapped UserDetails that return all hierachically reachable authorities * method returns wrapped <tt>UserDetails</tt> that return all hierachically reachable authorities
* instead of only the directly assigned authorities. * instead of only the directly assigned authorities.
* *
* @author Michael Mayr * @author Michael Mayr

View File

@ -18,9 +18,9 @@ import org.springframework.security.GrantedAuthority;
import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetails;
/** /**
* This class wraps Acegi's UserDetails in a way that its getAuthorities()-Method is * This class wraps Spring Security's <tt>UserDetails</tt> in a way that its <tt>getAuthorities()</tt> method is
* delegated to RoleHierarchy.getReachableGrantedAuthorities. All other methods are * delegated to <tt>RoleHierarchy.getReachableGrantedAuthorities</tt>. All other methods are
* delegated to the UserDetails implementation. * delegated to the <tt>UserDetails</tt> implementation.
* *
* @author Michael Mayr * @author Michael Mayr
*/ */

View File

@ -17,7 +17,7 @@ package org.springframework.security.userdetails.jdbc;
import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.userdetails.User; import org.springframework.security.userdetails.User;
import org.springframework.security.userdetails.UserDetails; import org.springframework.security.userdetails.UserDetails;
@ -67,7 +67,7 @@ public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
protected MappingSqlQuery authoritiesByUsernameMapping; protected MappingSqlQuery authoritiesByUsernameMapping;
protected MappingSqlQuery usersByUsernameMapping; protected MappingSqlQuery usersByUsernameMapping;
private String authoritiesByUsernameQuery; private String authoritiesByUsernameQuery;
@ -169,7 +169,7 @@ public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService {
/** /**
* Allows a default role prefix to be specified. If this is set to a non-empty value, then it is * Allows a default role prefix to be specified. If this is set to a non-empty value, then it is
* automatically prepended to any roles read in from the db. This may for example be used to add the * automatically prepended to any roles read in from the db. This may for example be used to add the
* <code>ROLE_</code> prefix expected to exist in role names (by default) by some other Acegi Security framework * <code>ROLE_</code> prefix expected to exist in role names (by default) by some other Spring Security
* classes, in the case that the prefix is not already present in the db. * classes, in the case that the prefix is not already present in the db.
* *
* @param rolePrefix the new prefix * @param rolePrefix the new prefix

View File

@ -31,7 +31,7 @@ import javax.servlet.ServletResponse;
/** /**
* Static utility methods for creating <code>FilterInvocation</code>s usable within Acegi Security.<p>The generated * Static utility methods for creating <code>FilterInvocation</code>s usable within Spring Security.<p>The generated
* <code>FilterInvocation</code> objects are not intended for use with <code>AbstractSecurityInterceptor</code> * <code>FilterInvocation</code> objects are not intended for use with <code>AbstractSecurityInterceptor</code>
* subclasses. Instead they are generally used by <code>WebInvocationPrivilegeEvaluator</code>.</p> * subclasses. Instead they are generally used by <code>WebInvocationPrivilegeEvaluator</code>.</p>
* *

View File

@ -24,7 +24,7 @@ import java.io.InputStream;
/** /**
* An in memory implementation of Spring's {@link org.springframework.core.io.Resource} interface. * An in memory implementation of Spring's {@link org.springframework.core.io.Resource} interface.
* <p>Used by the "Acegifier" web application to create a bean factory from an XML string, rather than a file.</p> * <p>Used to create a bean factory from an XML string, rather than a file.</p>
* *
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$

View File

@ -26,8 +26,8 @@ import java.util.List;
/** /**
* Static utility methods for creating <code>MethodInvocation</code>s usable within Acegi Security.<p>All methods * Static utility methods for creating <code>MethodInvocation</code>s usable within Spring Security.
* of this class return a {@link org.springframework.security.util.SimpleMethodInvocation}.</p> * <p>All methods of this class return a {@link org.springframework.security.util.SimpleMethodInvocation}.</p>
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$

View File

@ -1,5 +1,5 @@
<html> <html>
<body> <body>
General utility classes used throughout the Acegi Security System. General utility classes used throughout the Spring Security framework.
</body> </body>
</html> </html>

View File

@ -20,7 +20,7 @@ import java.util.List;
import org.springframework.security.AccessDecisionManager; import org.springframework.security.AccessDecisionManager;
import org.springframework.security.AccessDeniedException; import org.springframework.security.AccessDeniedException;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.ConfigAttribute; import org.springframework.security.ConfigAttribute;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
@ -43,7 +43,7 @@ public abstract class AbstractAccessDecisionManager implements AccessDecisionMan
private List decisionVoters; private List decisionVoters;
protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private boolean allowIfAllAbstainDecisions = false; private boolean allowIfAllAbstainDecisions = false;

View File

@ -31,7 +31,7 @@ import javax.servlet.http.HttpServletRequestWrapper;
/** /**
* An Acegi Security-aware <code>HttpServletRequestWrapper</code>, which uses the * A Spring Security-aware <code>HttpServletRequestWrapper</code>, which uses the
* <code>SecurityContext</code>-defined <code>Authentication</code> object for {@link * <code>SecurityContext</code>-defined <code>Authentication</code> object for {@link
* SecurityContextHolderAwareRequestWrapper#isUserInRole(java.lang.String)} and {@link * SecurityContextHolderAwareRequestWrapper#isUserInRole(java.lang.String)} and {@link
* javax.servlet.http.HttpServletRequestWrapper#getRemoteUser()} responses. * javax.servlet.http.HttpServletRequestWrapper#getRemoteUser()} responses.

View File

@ -1,9 +1,9 @@
<html> <html>
<body> <body>
Populates a Servlet request with a new Acegi Security compliant Populates a Servlet request with a new Spring Security compliant
<code>HttpServletRequestWrapper</code>. <code>HttpServletRequestWrapper</code>.
<p>To use, simply add the <code>ContextHolderAwareRequestFilter</code> <p>To use, simply add the <code>SecurityContextHolderAwareRequestFilter</code>
to <code>web.xml</code>. to <code>web.xml</code>.
</body> </body>
</html> </html>

View File

@ -1,4 +1,4 @@
# Acegi security # Spring security
# Messages in French # Messages in French
# Translation by Laurent Pireyn (laurent.pireyn@pisolutions.eu) # Translation by Laurent Pireyn (laurent.pireyn@pisolutions.eu)

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- <!--
* The Acegi Security System for Spring is published under the terms * Spring Security is published under the terms
* of the Apache Software License. * of the Apache Software License.
* $Id$ * $Id$
--> -->

View File

@ -8,7 +8,7 @@
<short-name>authz</short-name> <short-name>authz</short-name>
<uri>http://acegisecurity.org/authz</uri> <uri>http://acegisecurity.org/authz</uri>
<description> <description>
Acegi Security Systems Authorization Tag Library Spring Securitys Authorization Tag Library
$Id$ $Id$
</description> </description>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Acegi Security Core"> <project name="Spring Security Core">
<body> <body>
<menu ref="parent"/> <menu ref="parent"/>

View File

@ -24,27 +24,27 @@ import java.util.Locale;
/** /**
* Tests {@link org.springframework.security.AcegiMessageSource}. * Tests {@link org.springframework.security.SpringSecurityMessageSource}.
*/ */
public class AcegiMessageSourceTests extends TestCase { public class SpringSecurityMessageSourceTests extends TestCase {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public AcegiMessageSourceTests() { public SpringSecurityMessageSourceTests() {
super(); super();
} }
public AcegiMessageSourceTests(String arg0) { public SpringSecurityMessageSourceTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) { public static void main(String[] args) {
junit.textui.TestRunner.run(AcegiMessageSourceTests.class); junit.textui.TestRunner.run(SpringSecurityMessageSourceTests.class);
} }
public void testOperation() { public void testOperation() {
AcegiMessageSource msgs = new AcegiMessageSource(); SpringSecurityMessageSource msgs = new SpringSecurityMessageSource();
assertEquals("Proxy tickets are rejected", msgs.getMessage("RejectProxyTickets.reject", null, Locale.ENGLISH)); assertEquals("Proxy tickets are rejected", msgs.getMessage("RejectProxyTickets.reject", null, Locale.ENGLISH));
} }
@ -54,7 +54,7 @@ public class AcegiMessageSourceTests extends TestCase {
LocaleContextHolder.setLocale(Locale.ENGLISH); LocaleContextHolder.setLocale(Locale.ENGLISH);
// Cause a message to be generated // Cause a message to be generated
MessageSourceAccessor messages = AcegiMessageSource.getAccessor(); MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
assertEquals("Missing mandatory digest value; received header FOOBAR", assertEquals("Missing mandatory digest value; received header FOOBAR",
messages.getMessage("DigestProcessingFilter.missingMandatory", new Object[] {"FOOBAR"}, messages.getMessage("DigestProcessingFilter.missingMandatory", new Object[] {"FOOBAR"},
"ERROR - FAILED TO LOOKUP")); "ERROR - FAILED TO LOOKUP"));

View File

@ -59,7 +59,7 @@ public class AuthByAdapterTests extends TestCase {
AuthByAdapterProvider provider = new AuthByAdapterProvider(); AuthByAdapterProvider provider = new AuthByAdapterProvider();
provider.setKey("my_password"); provider.setKey("my_password");
PrincipalAcegiUserToken token = new PrincipalAcegiUserToken("my_password", "Test", "Password", PrincipalSpringSecurityUserToken token = new PrincipalSpringSecurityUserToken("my_password", "Test", "Password",
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")}, new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")},
null); null);
assertTrue(provider.supports(token.getClass())); assertTrue(provider.supports(token.getClass()));
@ -75,7 +75,7 @@ public class AuthByAdapterTests extends TestCase {
fail("Should have returned same type of object it was given"); fail("Should have returned same type of object it was given");
} }
PrincipalAcegiUserToken castResponse = (PrincipalAcegiUserToken) response; PrincipalSpringSecurityUserToken castResponse = (PrincipalSpringSecurityUserToken) response;
assertEquals(token.getName(), castResponse.getName()); assertEquals(token.getName(), castResponse.getName());
} }
@ -120,8 +120,8 @@ public class AuthByAdapterTests extends TestCase {
AuthByAdapterProvider provider = new AuthByAdapterProvider(); AuthByAdapterProvider provider = new AuthByAdapterProvider();
provider.setKey("my_password"); provider.setKey("my_password");
// Should fail as PrincipalAcegiUserToken has different key // Should fail as PrincipalSpringSecurityUserToken has different key
PrincipalAcegiUserToken token = new PrincipalAcegiUserToken("wrong_password", "Test", "Password", null, null); PrincipalSpringSecurityUserToken token = new PrincipalSpringSecurityUserToken("wrong_password", "Test", "Password", null, null);
try { try {
provider.authenticate(token); provider.authenticate(token);

View File

@ -58,7 +58,7 @@ public class HttpRequestIntegrationFilterTests extends TestCase {
public void testCorrectOperation() throws Exception { public void testCorrectOperation() throws Exception {
HttpRequestIntegrationFilter filter = new HttpRequestIntegrationFilter(); HttpRequestIntegrationFilter filter = new HttpRequestIntegrationFilter();
PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key", "someone", "password", PrincipalSpringSecurityUserToken principal = new PrincipalSpringSecurityUserToken("key", "someone", "password",
new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")}, null); new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")}, null);
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
@ -69,12 +69,12 @@ public class HttpRequestIntegrationFilterTests extends TestCase {
filter.doFilter(request, response, chain); filter.doFilter(request, response, chain);
if (!(SecurityContextHolder.getContext().getAuthentication() instanceof PrincipalAcegiUserToken)) { if (!(SecurityContextHolder.getContext().getAuthentication() instanceof PrincipalSpringSecurityUserToken)) {
System.out.println(SecurityContextHolder.getContext().getAuthentication()); System.out.println(SecurityContextHolder.getContext().getAuthentication());
fail("Should have returned PrincipalAcegiUserToken"); fail("Should have returned PrincipalSpringSecurityUserToken");
} }
PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) SecurityContextHolder.getContext() PrincipalSpringSecurityUserToken castResult = (PrincipalSpringSecurityUserToken) SecurityContextHolder.getContext()
.getAuthentication(); .getAuthentication();
assertEquals(principal, castResult); assertEquals(principal, castResult);
} }

View File

@ -22,34 +22,25 @@ import org.springframework.security.GrantedAuthorityImpl;
/** /**
* Tests {@link PrincipalAcegiUserToken}. * Tests {@link PrincipalSpringSecurityUserToken}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class PrincipalAcegiUserTokenTests extends TestCase { public class PrincipalSpringSecurityUserTokenTests extends TestCase {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public PrincipalAcegiUserTokenTests() { public PrincipalSpringSecurityUserTokenTests() {
super();
} }
public PrincipalAcegiUserTokenTests(String arg0) { public PrincipalSpringSecurityUserTokenTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) {
junit.textui.TestRunner.run(PrincipalAcegiUserTokenTests.class);
}
public final void setUp() throws Exception {
super.setUp();
}
public void testGetters() throws Exception { public void testGetters() throws Exception {
PrincipalAcegiUserToken token = new PrincipalAcegiUserToken("my_password", "Test", "Password", PrincipalSpringSecurityUserToken token = new PrincipalSpringSecurityUserToken("my_password", "Test", "Password",
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")}, new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")},
null); null);
assertEquals("Test", token.getPrincipal()); assertEquals("Test", token.getPrincipal());
@ -59,7 +50,7 @@ public class PrincipalAcegiUserTokenTests extends TestCase {
} }
public void testNoArgConstructorDoesntExist() { public void testNoArgConstructorDoesntExist() {
Class clazz = PrincipalAcegiUserToken.class; Class clazz = PrincipalSpringSecurityUserToken.class;
try { try {
clazz.getDeclaredConstructor((Class[]) null); clazz.getDeclaredConstructor((Class[]) null);

View File

@ -22,7 +22,7 @@ import org.springframework.security.GrantedAuthority;
import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.GrantedAuthorityImpl;
import org.springframework.security.MockFilterConfig; import org.springframework.security.MockFilterConfig;
import org.springframework.security.adapters.PrincipalAcegiUserToken; import org.springframework.security.adapters.PrincipalSpringSecurityUserToken;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpServletResponse;
@ -104,7 +104,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
public void testExceptionWithinFilterChainStillClearsSecurityContextHolder() throws Exception { public void testExceptionWithinFilterChainStillClearsSecurityContextHolder() throws Exception {
// Build an Authentication object we simulate came from HttpSession // Build an Authentication object we simulate came from HttpSession
PrincipalAcegiUserToken sessionPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken sessionPrincipal = new PrincipalSpringSecurityUserToken(
"key", "key",
"someone", "someone",
"password", "password",
@ -149,7 +149,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
public void testExistingContextContentsCopiedIntoContextHolderFromSessionAndChangesToContextCopiedBackToSession() public void testExistingContextContentsCopiedIntoContextHolderFromSessionAndChangesToContextCopiedBackToSession()
throws Exception { throws Exception {
// Build an Authentication object we simulate came from HttpSession // Build an Authentication object we simulate came from HttpSession
PrincipalAcegiUserToken sessionPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken sessionPrincipal = new PrincipalSpringSecurityUserToken(
"key", "key",
"someone", "someone",
"password", "password",
@ -158,7 +158,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
// Build an Authentication object we simulate our Authentication changed // Build an Authentication object we simulate our Authentication changed
// it to // it to
PrincipalAcegiUserToken updatedPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken updatedPrincipal = new PrincipalSpringSecurityUserToken(
"key", "someone", "password", "key", "someone", "password",
new GrantedAuthority[] { new GrantedAuthorityImpl( new GrantedAuthority[] { new GrantedAuthorityImpl(
"SOME_DIFFERENT_ROLE") }, null); "SOME_DIFFERENT_ROLE") }, null);
@ -194,7 +194,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
public void testHttpSessionCreatedWhenContextHolderChanges() throws Exception { public void testHttpSessionCreatedWhenContextHolderChanges() throws Exception {
// Build an Authentication object we simulate our Authentication changed it to // Build an Authentication object we simulate our Authentication changed it to
PrincipalAcegiUserToken updatedPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken updatedPrincipal = new PrincipalSpringSecurityUserToken(
"key", "someone", "password", "key", "someone", "password",
new GrantedAuthority[] { new GrantedAuthorityImpl( new GrantedAuthority[] { new GrantedAuthorityImpl(
"SOME_DIFFERENT_ROLE") }, null); "SOME_DIFFERENT_ROLE") }, null);
@ -260,7 +260,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
public void testHttpSessionWithNonContextInWellKnownLocationIsOverwritten() throws Exception { public void testHttpSessionWithNonContextInWellKnownLocationIsOverwritten() throws Exception {
// Build an Authentication object we simulate our Authentication changed // Build an Authentication object we simulate our Authentication changed
// it to // it to
PrincipalAcegiUserToken updatedPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken updatedPrincipal = new PrincipalSpringSecurityUserToken(
"key", "someone", "password", "key", "someone", "password",
new GrantedAuthority[] { new GrantedAuthorityImpl( new GrantedAuthority[] { new GrantedAuthorityImpl(
"SOME_DIFFERENT_ROLE") }, null); "SOME_DIFFERENT_ROLE") }, null);
@ -289,7 +289,7 @@ public class HttpSessionContextIntegrationFilterTests extends TestCase {
} }
public void testConcurrentThreadsLazilyChangeFilterAppliedValueToTrue() throws Exception { public void testConcurrentThreadsLazilyChangeFilterAppliedValueToTrue() throws Exception {
PrincipalAcegiUserToken sessionPrincipal = new PrincipalAcegiUserToken( PrincipalSpringSecurityUserToken sessionPrincipal = new PrincipalSpringSecurityUserToken(
"key", "key",
"someone", "someone",
"password", "password",

View File

@ -15,7 +15,7 @@
package org.springframework.security.ldap; package org.springframework.security.ldap;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
import org.springframework.ldap.UncategorizedLdapException; import org.springframework.ldap.UncategorizedLdapException;
@ -43,7 +43,7 @@ public class DefaultInitialDirContextFactoryTests extends AbstractLdapIntegratio
public void onSetUp() throws Exception { public void onSetUp() throws Exception {
super.onSetUp(); super.onSetUp();
idf = getInitialDirContextFactory(); idf = getInitialDirContextFactory();
idf.setMessageSource(new AcegiMessageSource()); idf.setMessageSource(new SpringSecurityMessageSource());
} }
@Test @Test
@ -57,15 +57,15 @@ public class DefaultInitialDirContextFactoryTests extends AbstractLdapIntegratio
@Test @Test
public void testBaseDnIsParsedFromCorrectlyFromUrl() { public void testBaseDnIsParsedFromCorrectlyFromUrl() {
idf = new DefaultInitialDirContextFactory("ldap://acegisecurity.org/dc=springframework,dc=org"); idf = new DefaultInitialDirContextFactory("ldap://springsecurity.org/dc=springframework,dc=org");
assertEquals("dc=springframework,dc=org", idf.getRootDn()); assertEquals("dc=springframework,dc=org", idf.getRootDn());
// Check with an empty root // Check with an empty root
idf = new DefaultInitialDirContextFactory("ldap://acegisecurity.org/"); idf = new DefaultInitialDirContextFactory("ldap://springsecurity.org/");
assertEquals("", idf.getRootDn()); assertEquals("", idf.getRootDn());
// Empty root without trailing slash // Empty root without trailing slash
idf = new DefaultInitialDirContextFactory("ldap://acegisecurity.org"); idf = new DefaultInitialDirContextFactory("ldap://springsecurity.org");
assertEquals("", idf.getRootDn()); assertEquals("", idf.getRootDn());
} }
@ -125,12 +125,12 @@ public class DefaultInitialDirContextFactoryTests extends AbstractLdapIntegratio
@Test @Test
public void testEnvironment() { public void testEnvironment() {
idf = new DefaultInitialDirContextFactory("ldap://acegisecurity.org/"); idf = new DefaultInitialDirContextFactory("ldap://springsecurity.org/");
// check basic env // check basic env
Hashtable env = idf.getEnvironment(); Hashtable env = idf.getEnvironment();
//assertEquals("com.sun.jndi.ldap.LdapCtxFactory", env.get(Context.INITIAL_CONTEXT_FACTORY)); //assertEquals("com.sun.jndi.ldap.LdapCtxFactory", env.get(Context.INITIAL_CONTEXT_FACTORY));
assertEquals("ldap://acegisecurity.org/", env.get(Context.PROVIDER_URL)); assertEquals("ldap://springsecurity.org/", env.get(Context.PROVIDER_URL));
assertEquals("simple", env.get(Context.SECURITY_AUTHENTICATION)); assertEquals("simple", env.get(Context.SECURITY_AUTHENTICATION));
assertNull(env.get(Context.SECURITY_PRINCIPAL)); assertNull(env.get(Context.SECURITY_PRINCIPAL));
assertNull(env.get(Context.SECURITY_CREDENTIALS)); assertNull(env.get(Context.SECURITY_CREDENTIALS));

View File

@ -60,14 +60,13 @@ public class LdapUtilsTests extends MockObjectTestCase {
LdapUtils.getRelativeName("cn=jane,dc=springframework,dc=org", (Context) mockCtx.proxy())); LdapUtils.getRelativeName("cn=jane,dc=springframework,dc=org", (Context) mockCtx.proxy()));
} }
public void testGetRelativeNameWorksWithArbitrarySpaces() public void testGetRelativeNameWorksWithArbitrarySpaces() throws Exception {
throws Exception {
Mock mockCtx = mock(DirContext.class); Mock mockCtx = mock(DirContext.class);
mockCtx.expects(atLeastOnce()).method("getNameInNamespace").will(returnValue("dc=acegisecurity,dc = org")); mockCtx.expects(atLeastOnce()).method("getNameInNamespace").will(returnValue("dc=springsecurity,dc = org"));
assertEquals("cn=jane smith", assertEquals("cn=jane smith",
LdapUtils.getRelativeName("cn=jane smith, dc = acegisecurity , dc=org", (Context) mockCtx.proxy())); LdapUtils.getRelativeName("cn=jane smith, dc = springsecurity , dc=org", (Context) mockCtx.proxy()));
} }
public void testRootDnsAreParsedFromUrlsCorrectly() { public void testRootDnsAreParsedFromUrlsCorrectly() {

View File

@ -15,7 +15,7 @@
package org.springframework.security.providers.ldap.authenticator; package org.springframework.security.providers.ldap.authenticator;
import org.springframework.security.AcegiMessageSource; import org.springframework.security.SpringSecurityMessageSource;
import org.springframework.security.BadCredentialsException; import org.springframework.security.BadCredentialsException;
import org.springframework.security.Authentication; import org.springframework.security.Authentication;
import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
@ -48,7 +48,7 @@ public class BindAuthenticatorTests extends AbstractLdapIntegrationTests {
public void onSetUp() { public void onSetUp() {
authenticator = new BindAuthenticator((InitialDirContextFactory) getContextSource()); authenticator = new BindAuthenticator((InitialDirContextFactory) getContextSource());
authenticator.setMessageSource(new AcegiMessageSource()); authenticator.setMessageSource(new SpringSecurityMessageSource());
bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword"); bob = new UsernamePasswordAuthenticationToken("bob", "bobspassword");
ben = new UsernamePasswordAuthenticationToken("ben", "benspassword"); ben = new UsernamePasswordAuthenticationToken("ben", "benspassword");

View File

@ -63,7 +63,7 @@ public class DigestProcessingFilterTests extends MockObjectTestCase {
private static final String NC = "00000002"; private static final String NC = "00000002";
private static final String CNONCE = "c822c727a648aba7"; private static final String CNONCE = "c822c727a648aba7";
private static final String REALM = "The Actual, Correct Realm Name"; private static final String REALM = "The Actual, Correct Realm Name";
private static final String KEY = "acegi"; private static final String KEY = "springsecurity";
private static final String QOP = "auth"; private static final String QOP = "auth";
private static final String USERNAME = "marissa,ok"; private static final String USERNAME = "marissa,ok";
private static final String PASSWORD = "koala"; private static final String PASSWORD = "koala";

View File

@ -51,14 +51,14 @@ public class StringSplitUtilsTests extends TestCase {
public void testSplitEachArrayElementAndCreateMapNormalOperation() { public void testSplitEachArrayElementAndCreateMapNormalOperation() {
// note it ignores malformed entries (ie those without an equals sign) // note it ignores malformed entries (ie those without an equals sign)
String unsplit = "username=\"marissa\", invalidEntryThatHasNoEqualsSign, realm=\"Contacts Realm\", nonce=\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\", uri=\"/acegi-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\", response=\"38644211cf9ac3da63ab639807e2baff\", qop=auth, nc=00000004, cnonce=\"2b8d329a8571b99a\""; String unsplit = "username=\"marissa\", invalidEntryThatHasNoEqualsSign, realm=\"Contacts Realm\", nonce=\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\", uri=\"/spring-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\", response=\"38644211cf9ac3da63ab639807e2baff\", qop=auth, nc=00000004, cnonce=\"2b8d329a8571b99a\"";
String[] headerEntries = StringUtils.commaDelimitedListToStringArray(unsplit); String[] headerEntries = StringUtils.commaDelimitedListToStringArray(unsplit);
Map headerMap = StringSplitUtils.splitEachArrayElementAndCreateMap(headerEntries, "=", "\""); Map headerMap = StringSplitUtils.splitEachArrayElementAndCreateMap(headerEntries, "=", "\"");
assertEquals("marissa", headerMap.get("username")); assertEquals("marissa", headerMap.get("username"));
assertEquals("Contacts Realm", headerMap.get("realm")); assertEquals("Contacts Realm", headerMap.get("realm"));
assertEquals("MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==", headerMap.get("nonce")); assertEquals("MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==", headerMap.get("nonce"));
assertEquals("/acegi-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4", assertEquals("/spring-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4",
headerMap.get("uri")); headerMap.get("uri"));
assertEquals("38644211cf9ac3da63ab639807e2baff", headerMap.get("response")); assertEquals("38644211cf9ac3da63ab639807e2baff", headerMap.get("response"));
assertEquals("auth", headerMap.get("qop")); assertEquals("auth", headerMap.get("qop"));
@ -68,14 +68,14 @@ public class StringSplitUtilsTests extends TestCase {
} }
public void testSplitEachArrayElementAndCreateMapRespectsInstructionNotToRemoveCharacters() { public void testSplitEachArrayElementAndCreateMapRespectsInstructionNotToRemoveCharacters() {
String unsplit = "username=\"marissa\", realm=\"Contacts Realm\", nonce=\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\", uri=\"/acegi-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\", response=\"38644211cf9ac3da63ab639807e2baff\", qop=auth, nc=00000004, cnonce=\"2b8d329a8571b99a\""; String unsplit = "username=\"marissa\", realm=\"Contacts Realm\", nonce=\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\", uri=\"/spring-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\", response=\"38644211cf9ac3da63ab639807e2baff\", qop=auth, nc=00000004, cnonce=\"2b8d329a8571b99a\"";
String[] headerEntries = StringUtils.commaDelimitedListToStringArray(unsplit); String[] headerEntries = StringUtils.commaDelimitedListToStringArray(unsplit);
Map headerMap = StringSplitUtils.splitEachArrayElementAndCreateMap(headerEntries, "=", null); Map headerMap = StringSplitUtils.splitEachArrayElementAndCreateMap(headerEntries, "=", null);
assertEquals("\"marissa\"", headerMap.get("username")); assertEquals("\"marissa\"", headerMap.get("username"));
assertEquals("\"Contacts Realm\"", headerMap.get("realm")); assertEquals("\"Contacts Realm\"", headerMap.get("realm"));
assertEquals("\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\"", headerMap.get("nonce")); assertEquals("\"MTEwOTAyMzU1MTQ4NDo1YzY3OWViYWM5NDNmZWUwM2UwY2NmMDBiNDQzMTQ0OQ==\"", headerMap.get("nonce"));
assertEquals("\"/acegi-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\"", assertEquals("\"/spring-security-sample-contacts-filter/secure/adminPermission.htm?contactId=4\"",
headerMap.get("uri")); headerMap.get("uri"));
assertEquals("\"38644211cf9ac3da63ab639807e2baff\"", headerMap.get("response")); assertEquals("\"38644211cf9ac3da63ab639807e2baff\"", headerMap.get("response"));
assertEquals("auth", headerMap.get("qop")); assertEquals("auth", headerMap.get("qop"));

View File

@ -5,7 +5,7 @@
<version>14</version> <version>14</version>
</compliance> </compliance>
<style> <style>
<description>Acegi Security System for Spring</description> <description>Spring Security</description>
<name>acegisecurity</name> <name>acegisecurity</name>
</style> </style>
</general> </general>

View File

@ -1,4 +1,4 @@
Cenque has supported the Acegi Security System for Spring project with a free Cenque has supported Spring Security project with a free
Team Edition license of Clover. Team Edition license of Clover.
We thank Cenqua for their support. We thank Cenqua for their support.

View File

@ -1,19 +1,18 @@
====================================================================== ======================================================================
== NOTICE file corresponding to section 4(d) of the Apache License, == == NOTICE file corresponding to section 4(d) of the Apache License, ==
== Version 2.0, in this case for the Acegi Security System for == == Version 2.0, in this case for the Spring Security distribution. ==
== Spring distribution. ==
====================================================================== ======================================================================
The end-user documentation included with a redistribution, if any, The end-user documentation included with a redistribution, if any,
must include the following acknowledgement: must include the following acknowledgement:
"This product includes software developed by the Acegi Security "This product includes software developed by Spring Security
System for Spring Project (http://acegisecurity.org)." Project (http://acegisecurity.org)."
Alternately, this acknowledgement may appear in the software itself, Alternately, this acknowledgement may appear in the software itself,
if and wherever such third-party acknowledgements normally appear. if and wherever such third-party acknowledgements normally appear.
The names "Acegi", "Acegi Security System" and "Acegi Security System The names "Spring", "Spring Security" and "Spring Security System"
for Spring" must not be used to endorse or promote products derived must not be used to endorse or promote products derived
from this software without prior written permission. For written from this software without prior written permission. For written
permission, please contact ben.alex@acegi.com.au. permission, please contact ben.alex@acegi.com.au.

View File

@ -54,7 +54,7 @@ import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert; import org.springframework.util.Assert;
/** /**
* A clean-room implementation for Acegi Security System of an NTLM HTTP filter * A clean-room implementation for Spring Security of an NTLM HTTP filter
* leveraging the JCIFS library. * leveraging the JCIFS library.
* <p> * <p>
* NTLM is a Microsoft-developed protocol providing single sign-on capabilities * NTLM is a Microsoft-developed protocol providing single sign-on capabilities
@ -64,13 +64,13 @@ import org.springframework.util.Assert;
* A web application can then reuse the user's Windows credentials without * A web application can then reuse the user's Windows credentials without
* having to ask for them again. * having to ask for them again.
* <p> * <p>
* Because NTLM only provides the username of the Windows client, an Acegi * Because NTLM only provides the username of the Windows client, a Spring
* Security NTLM deployment must have a <code>UserDetailsService</code> that * Security NTLM deployment must have a <code>UserDetailsService</code> that
* provides a <code>UserDetails</code> object with the empty string as the * provides a <code>UserDetails</code> object with the empty string as the
* password and whatever <code>GrantedAuthority</code> values necessary to * password and whatever <code>GrantedAuthority</code> values necessary to
* pass the <code>FilterSecurityInterceptor</code>. * pass the <code>FilterSecurityInterceptor</code>.
* <p> * <p>
* The Acegi Security bean configuration file must also place the * The Spring Security bean configuration file must also place the
* <code>ExceptionTranslationFilter</code> before this filter in the * <code>ExceptionTranslationFilter</code> before this filter in the
* <code>FilterChainProxy</code> definition. * <code>FilterChainProxy</code> definition.
* *
@ -83,7 +83,7 @@ public class NtlmProcessingFilter extends HttpFilter implements InitializingBean
private static Log logger = LogFactory.getLog(NtlmProcessingFilter.class); private static Log logger = LogFactory.getLog(NtlmProcessingFilter.class);
private static final String STATE_ATTR = "AcegiNtlm"; private static final String STATE_ATTR = "SpringSecurityNtlm";
private static final String CHALLENGE_ATTR = "NtlmChal"; private static final String CHALLENGE_ATTR = "NtlmChal";
private static final Integer BEGIN = new Integer(0); private static final Integer BEGIN = new Integer(0);
private static final Integer NEGOTIATE = new Integer(1); private static final Integer NEGOTIATE = new Integer(1);
@ -328,7 +328,7 @@ public class NtlmProcessingFilter extends HttpFilter implements InitializingBean
this.logon(session, dcAddress, auth); this.logon(session, dcAddress, auth);
session.setAttribute(STATE_ATTR, COMPLETE); session.setAttribute(STATE_ATTR, COMPLETE);
// Do not reauthenticate the user in Acegi during an IE POST // Do not reauthenticate the user in Spring Security during an IE POST
final Authentication myCurrentAuth = SecurityContextHolder.getContext().getAuthentication(); final Authentication myCurrentAuth = SecurityContextHolder.getContext().getAuthentication();
if (myCurrentAuth == null || myCurrentAuth instanceof AnonymousAuthenticationToken) { if (myCurrentAuth == null || myCurrentAuth instanceof AnonymousAuthenticationToken) {
logger.debug("Authenticating user credentials"); logger.debug("Authenticating user credentials");
@ -408,7 +408,7 @@ public class NtlmProcessingFilter extends HttpFilter implements InitializingBean
} }
/** /**
* Authenticates the user credentials acquired from NTLM against the Acegi * Authenticates the user credentials acquired from NTLM against the Spring
* Security <code>AuthenticationManager</code>. * Security <code>AuthenticationManager</code>.
* *
* @param request the <code>HttpServletRequest</code> object. * @param request the <code>HttpServletRequest</code> object.

View File

@ -31,7 +31,7 @@ public class NtlmUsernamePasswordAuthenticationToken extends UsernamePasswordAut
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* ACEGI often checks password ; but we do not have one. This is the replacement password * Spring Security often checks password ; but we do not have one. This is the replacement password
*/ */
public static final String DEFAULT_PASSWORD = ""; public static final String DEFAULT_PASSWORD = "";

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Acegi NTLM</display-name> <display-name>Spring Security NTLM</display-name>
<!-- 1. Setup two parameters: --> <!-- 1. Setup two parameters: -->
<!-- a) Acegi's configuration file --> <!-- a) Spring Security's configuration file -->
<!-- b) Loggin configuration file --> <!-- b) Logging configuration file -->
<context-param> <context-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value> <param-value>/WEB-INF/applicationContext.xml</param-value>
@ -15,9 +15,9 @@
<param-value>/WEB-INF/log4j.properties</param-value> <param-value>/WEB-INF/log4j.properties</param-value>
</context-param> </context-param>
<!-- 2. Setup the Acegi Filter Chain Proxy --> <!-- 2. Setup the Spring Security Filter Chain Proxy -->
<filter> <filter>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class> <filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class>
<init-param> <init-param>
<param-name>targetClass</param-name> <param-name>targetClass</param-name>
@ -26,7 +26,7 @@
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<url-pattern>/**</url-pattern> <url-pattern>/**</url-pattern>
</filter-mapping> </filter-mapping>
@ -41,7 +41,7 @@
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener> </listener>
<!-- c) Setup ACEGI to subscribe to http session events in the web context --> <!-- c) Setup Spring Security to subscribe to http session events in the web context -->
<listener> <listener>
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class> <listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener> </listener>

View File

@ -1,12 +1,12 @@
=============================================================================== ===============================================================================
ACEGI SECURITY SYSTEM FOR SPRING - README FILE SPRING SECURITY - README FILE
=============================================================================== ===============================================================================
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
OVERVIEW OVERVIEW
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
The Acegi Security System for Spring provides security services for Spring Security provides security services for
The Spring Framework (http://www.springframework.org). The Spring Framework (http://www.springframework.org).
For a detailed list of features and access to the latest release, please visit For a detailed list of features and access to the latest release, please visit
@ -22,7 +22,7 @@ JAR files are no longer signed. They were signed in releases 1.0.0 and earlier.
BUILDING BUILDING
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Acegi Security is built using Maven. Please read the "Building with Maven" page Spring Security is built using Maven. Please read the "Building" page
at http://acegisecurity.org. This page is also included in the /docs directory at http://acegisecurity.org. This page is also included in the /docs directory
of official release ZIPs. of official release ZIPs.
@ -38,7 +38,7 @@ ZIPs.
DOCUMENTATION DOCUMENTATION
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
http://acegisecurity.org has a wide range of articles about Acegi Security, http://acegisecurity.org has a wide range of articles about Spring Security,
including links to external resources. A copy of this web site is included in including links to external resources. A copy of this web site is included in
the /docs directory of official release ZIPs. the /docs directory of official release ZIPs.
@ -50,12 +50,12 @@ The core JavaDocs can be found in /docs/multiproject/acegi-security/apidocs/.
OBTAINING SUPPORT OBTAINING SUPPORT
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
If you need any help, please use the Acegi Security System for Spring forum If you need any help, please use the Spring Security forum
located at the Spring Community's forum site: located at the Spring Community's forum site:
http://forum.springframework.org http://forum.springframework.org
If you start using Acegi Security in your project, please consider joining If you start using Spring Security in your project, please consider joining
the acegisecurity-developer mailing list. This is currently the best way to the acegisecurity-developer mailing list. This is currently the best way to
keep informed about the project's status and provide feedback in design keep informed about the project's status and provide feedback in design
discussions. You can join at: discussions. You can join at:

View File

@ -5,5 +5,5 @@
serverName=localhost serverName=localhost
httpPort=8080 httpPort=8080
contextPath=/acegi-security-sample-contacts-filter contextPath=/spring-security-sample-contacts-filter
rmiPort=1099 rmiPort=1099

View File

@ -46,7 +46,7 @@
<filter> <filter>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class> <filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class>
<init-param> <init-param>
<param-name>targetClass</param-name> <param-name>targetClass</param-name>
@ -55,7 +55,7 @@
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>

View File

@ -9,7 +9,7 @@ might find the troubleshooting section at the end helpful).
The following demonstrates how to create a self-signed certificate and add The following demonstrates how to create a self-signed certificate and add
it to the cacerts file. If you just want to use the certificate we have it to the cacerts file. If you just want to use the certificate we have
already created and shipped with the Acegi Security System for Spring, you already created and shipped with Spring Security, you
can skip directly to step 3. can skip directly to step 3.
@ -18,7 +18,7 @@ can skip directly to step 3.
What is your first and last name? What is your first and last name?
[Unknown]: localhost [Unknown]: localhost
What is the name of your organizational unit? What is the name of your organizational unit?
[Unknown]: Acegi Security System for Spring [Unknown]: Spring Security
What is the name of your organization? What is the name of your organization?
[Unknown]: TEST CERTIFICATE ONLY. DO NOT USE IN PRODUCTION. [Unknown]: TEST CERTIFICATE ONLY. DO NOT USE IN PRODUCTION.
What is the name of your City or Locality? What is the name of your City or Locality?
@ -27,7 +27,7 @@ What is the name of your State or Province?
[Unknown]: [Unknown]:
What is the two-letter country code for this unit? What is the two-letter country code for this unit?
[Unknown]: [Unknown]:
Is CN=localhost, OU=Acegi Security System for Spring, O=TEST CERTIFICATE ONLY. D Is CN=localhost, OU=Spring Security, O=TEST CERTIFICATE ONLY. D
O NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown correct? O NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown correct?
[no]: yes [no]: yes
@ -47,9 +47,9 @@ O NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown correct?
6. keytool -import -v -file acegisecurity.txt -keypass password -keystore cacerts -storepass changeit -alias acegisecurity 6. keytool -import -v -file acegisecurity.txt -keypass password -keystore cacerts -storepass changeit -alias acegisecurity
Owner: CN=localhost, OU=Acegi Security System for Spring, O=TEST CERTIFICATE ONL Owner: CN=localhost, OU=Spring Security, O=TEST CERTIFICATE ONL
Y. DO NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown Y. DO NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown
Issuer: CN=localhost, OU=Acegi Security System for Spring, O=TEST CERTIFICATE ON Issuer: CN=localhost, OU=Spring Security, O=TEST CERTIFICATE ON
LY. DO NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown LY. DO NOT USE IN PRODUCTION., L=Unknown, ST=Unknown, C=Unknown
Serial number: 4080daf4 Serial number: 4080daf4
Valid from: Sat Apr 17 07:21:24 GMT 2004 until: Tue Sep 02 07:21:24 GMT 2031 Valid from: Sat Apr 17 07:21:24 GMT 2004 until: Tue Sep 02 07:21:24 GMT 2031

View File

@ -25,7 +25,7 @@
</context-param> </context-param>
<filter> <filter>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class> <filter-class>org.springframework.security.util.FilterToBeanProxy</filter-class>
<init-param> <init-param>
<param-name>targetClass</param-name> <param-name>targetClass</param-name>
@ -34,7 +34,7 @@
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>Acegi Filter Chain Proxy</filter-name> <filter-name>Spring Security Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern> <url-pattern>/*</url-pattern>
</filter-mapping> </filter-mapping>

View File

@ -1,5 +0,0 @@
<html>
<body>
General utility classes used throughout the Acegi Security System.
</body>
</html>

View File

@ -1,12 +1,12 @@
=============================================================================== ===============================================================================
ACEGI SECURITY SYSTEM FOR SPRING - README FILE SPRING SECURITY - README FILE
=============================================================================== ===============================================================================
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
OVERVIEW OVERVIEW
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
The Acegi Security System for Spring provides security services for Spring Security System provides security services for
The Spring Framework (http://www.springframework.org). The Spring Framework (http://www.springframework.org).
For a detailed list of features and access to the latest release, please visit For a detailed list of features and access to the latest release, please visit
@ -16,10 +16,10 @@ http://acegisecurity.org.
SOURCE RELEASES SOURCE RELEASES
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
If you have downloaded an acegi-security-xx-src.zip, you will NOT be able to If you have downloaded a spring-security-xx-src.zip, you will NOT be able to
compile the project. The -src releases are intended for source code review compile the project. The -src releases are intended for source code review
and IDE integration only. If you wish to use Acegi Security, you must download and IDE integration only. If you wish to use Spring Security, you must download
the full release or compile it from CVS. See the "Building with Maven" page the full release or compile it from CVS. See the "Building" page
at http://acegisecurity.org for further details. There is also a "Download" at http://acegisecurity.org for further details. There is also a "Download"
link if you would prefer to download an already compiled release. link if you would prefer to download an already compiled release.
@ -27,12 +27,12 @@ link if you would prefer to download an already compiled release.
OBTAINING SUPPORT OBTAINING SUPPORT
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
If you need any help, please use the Acegi Security System for Spring forum If you need any help, please use the Spring Security forum located at the
located at the Spring Community's forum site: Spring Community's forum site:
http://forum.springframework.org http://forum.springframework.org
If you start using Acegi Security in your project, please consider joining If you start using Spring Security in your project, please consider joining
the acegisecurity-developer mailing list. This is currently the best way to the acegisecurity-developer mailing list. This is currently the best way to
keep informed about the project's status and provide feedback in design keep informed about the project's status and provide feedback in design
discussions. You can join at: discussions. You can join at:

Some files were not shown because too many files have changed in this diff Show More