SEC-70: Refactor event publishing.
This commit is contained in:
@@ -13,19 +13,18 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.providers.dao.event;
|
||||
package net.sf.acegisecurity.event.authentication;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.sf.acegisecurity.Authentication;
|
||||
import net.sf.acegisecurity.GrantedAuthority;
|
||||
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||
import net.sf.acegisecurity.AuthenticationException;
|
||||
import net.sf.acegisecurity.DisabledException;
|
||||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
import net.sf.acegisecurity.providers.dao.User;
|
||||
|
||||
|
||||
/**
|
||||
* Tests {@link AuthenticationEvent} and its subclasses.
|
||||
* Tests {@link AbstractAuthenticationEvent} and its subclasses.
|
||||
*
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
@@ -41,63 +40,42 @@ public class AuthenticationEventTests extends TestCase {
|
||||
junit.textui.TestRunner.run(AuthenticationEventTests.class);
|
||||
}
|
||||
|
||||
public void testDisabledEvent() {
|
||||
public void testAbstractAuthenticationEvent() {
|
||||
Authentication auth = getAuthentication();
|
||||
User user = getUser();
|
||||
AuthenticationFailureDisabledEvent event = new AuthenticationFailureDisabledEvent(auth,
|
||||
user);
|
||||
AbstractAuthenticationEvent event = new AuthenticationSuccessEvent(auth);
|
||||
assertEquals(auth, event.getAuthentication());
|
||||
assertEquals(user, event.getUser());
|
||||
}
|
||||
|
||||
public void testPasswordEvent() {
|
||||
public void testAbstractAuthenticationFailureEvent() {
|
||||
Authentication auth = getAuthentication();
|
||||
User user = getUser();
|
||||
AuthenticationFailurePasswordEvent event = new AuthenticationFailurePasswordEvent(auth,
|
||||
user);
|
||||
AuthenticationException exception = new DisabledException("TEST");
|
||||
AbstractAuthenticationFailureEvent event = new AuthenticationFailureDisabledEvent(auth,
|
||||
exception);
|
||||
assertEquals(auth, event.getAuthentication());
|
||||
assertEquals(user, event.getUser());
|
||||
assertEquals(exception, event.getException());
|
||||
}
|
||||
|
||||
public void testRejectsNullAuthentication() {
|
||||
AuthenticationException exception = new DisabledException("TEST");
|
||||
|
||||
try {
|
||||
AuthenticationFailureDisabledEvent event = new AuthenticationFailureDisabledEvent(null,
|
||||
getUser());
|
||||
exception);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testRejectsNullUser() {
|
||||
public void testRejectsNullAuthenticationException() {
|
||||
try {
|
||||
AuthenticationFailureDisabledEvent event = new AuthenticationFailureDisabledEvent(getAuthentication(),
|
||||
null);
|
||||
new AuthenticationFailureDisabledEvent(getAuthentication(), null);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testSuccessEvent() {
|
||||
Authentication auth = getAuthentication();
|
||||
User user = getUser();
|
||||
AuthenticationSuccessEvent event = new AuthenticationSuccessEvent(auth,
|
||||
user);
|
||||
assertEquals(auth, event.getAuthentication());
|
||||
assertEquals(user, event.getUser());
|
||||
}
|
||||
|
||||
public void testSwitchUserContextEvent() {
|
||||
Authentication auth = getAuthentication();
|
||||
User targetUser = getUser();
|
||||
|
||||
AuthenticationSwitchUserEvent event = new AuthenticationSwitchUserEvent(auth,
|
||||
targetUser);
|
||||
assertEquals(auth, event.getAuthentication());
|
||||
assertEquals(targetUser, event.getUser());
|
||||
}
|
||||
|
||||
private Authentication getAuthentication() {
|
||||
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("Principal",
|
||||
"Credentials");
|
||||
@@ -105,11 +83,4 @@ public class AuthenticationEventTests extends TestCase {
|
||||
|
||||
return authentication;
|
||||
}
|
||||
|
||||
private User getUser() {
|
||||
User user = new User("foo", "bar", true, true, true, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_FOOBAR")});
|
||||
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.event.authentication;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.sf.acegisecurity.Authentication;
|
||||
import net.sf.acegisecurity.LockedException;
|
||||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
|
||||
|
||||
/**
|
||||
* Tests {@link LoggerListener}.
|
||||
*
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
*/
|
||||
public class LoggerListenerTests extends TestCase {
|
||||
//~ Methods ================================================================
|
||||
|
||||
public final void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(LoggerListenerTests.class);
|
||||
}
|
||||
|
||||
public void testLogsEvents() {
|
||||
AuthenticationFailureDisabledEvent event = new AuthenticationFailureDisabledEvent(getAuthentication(),
|
||||
new LockedException("TEST"));
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
private Authentication getAuthentication() {
|
||||
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("Principal",
|
||||
"Credentials");
|
||||
authentication.setDetails("127.0.0.1");
|
||||
|
||||
return authentication;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.intercept.event;
|
||||
package net.sf.acegisecurity.event.authorization;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -47,25 +47,25 @@ public class AuthenticationCredentialsNotFoundEventTests extends TestCase {
|
||||
|
||||
public void testRejectsNulls() {
|
||||
try {
|
||||
AuthenticationCredentialsNotFoundEvent event = new AuthenticationCredentialsNotFoundEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new AuthenticationCredentialsNotFoundException("test"));
|
||||
new AuthenticationCredentialsNotFoundEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new AuthenticationCredentialsNotFoundException("test"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthenticationCredentialsNotFoundEvent event = new AuthenticationCredentialsNotFoundEvent(new MockMethodInvocation(),
|
||||
null, new AuthenticationCredentialsNotFoundException("test"));
|
||||
new AuthenticationCredentialsNotFoundEvent(new MockMethodInvocation(),
|
||||
null, new AuthenticationCredentialsNotFoundException("test"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthenticationCredentialsNotFoundEvent event = new AuthenticationCredentialsNotFoundEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null);
|
||||
new AuthenticationCredentialsNotFoundEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,13 +13,14 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.intercept.event;
|
||||
package net.sf.acegisecurity.event.authorization;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.sf.acegisecurity.AccessDeniedException;
|
||||
import net.sf.acegisecurity.ConfigAttributeDefinition;
|
||||
import net.sf.acegisecurity.MockMethodInvocation;
|
||||
import net.sf.acegisecurity.event.authorization.AuthorizationFailureEvent;
|
||||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
|
||||
|
||||
@@ -48,38 +49,37 @@ public class AuthorizationFailureEventTests extends TestCase {
|
||||
|
||||
public void testRejectsNulls() {
|
||||
try {
|
||||
AuthorizationFailureEvent event = new AuthorizationFailureEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new AccessDeniedException("error"));
|
||||
new AuthorizationFailureEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new AccessDeniedException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthorizationFailureEvent event = new AuthorizationFailureEvent(new MockMethodInvocation(),
|
||||
null,
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new AccessDeniedException("error"));
|
||||
new AuthorizationFailureEvent(new MockMethodInvocation(), null,
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new AccessDeniedException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthorizationFailureEvent event = new AuthorizationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null,
|
||||
new AccessDeniedException("error"));
|
||||
new AuthorizationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null,
|
||||
new AccessDeniedException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthorizationFailureEvent event = new AuthorizationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"), null);
|
||||
new AuthorizationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"), null);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.intercept.event;
|
||||
package net.sf.acegisecurity.event.authorization;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -47,25 +47,24 @@ public class AuthorizedEventTests extends TestCase {
|
||||
|
||||
public void testRejectsNulls() {
|
||||
try {
|
||||
AuthorizedEvent event = new AuthorizedEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"));
|
||||
new AuthorizedEvent(null, new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthorizedEvent event = new AuthorizedEvent(new MockMethodInvocation(),
|
||||
null, new UsernamePasswordAuthenticationToken("foo", "bar"));
|
||||
new AuthorizedEvent(new MockMethodInvocation(), null,
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthorizedEvent event = new AuthorizedEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null);
|
||||
new AuthorizedEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
@@ -1,88 +0,0 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.intercept.event;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.sf.acegisecurity.BadCredentialsException;
|
||||
import net.sf.acegisecurity.ConfigAttributeDefinition;
|
||||
import net.sf.acegisecurity.MockMethodInvocation;
|
||||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
|
||||
|
||||
/**
|
||||
* Tests {@link AuthenticationFailureEvent}.
|
||||
*
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
*/
|
||||
public class AuthenticationFailureEventTests extends TestCase {
|
||||
//~ Constructors ===========================================================
|
||||
|
||||
public AuthenticationFailureEventTests() {
|
||||
super();
|
||||
}
|
||||
|
||||
public AuthenticationFailureEventTests(String arg0) {
|
||||
super(arg0);
|
||||
}
|
||||
|
||||
//~ Methods ================================================================
|
||||
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(AuthenticationFailureEventTests.class);
|
||||
}
|
||||
|
||||
public void testRejectsNulls() {
|
||||
try {
|
||||
AuthenticationFailureEvent event = new AuthenticationFailureEvent(null,
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new BadCredentialsException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthenticationFailureEvent event = new AuthenticationFailureEvent(new MockMethodInvocation(),
|
||||
null,
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"),
|
||||
new BadCredentialsException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthenticationFailureEvent event = new AuthenticationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(), null,
|
||||
new BadCredentialsException("error"));
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
AuthenticationFailureEvent event = new AuthenticationFailureEvent(new MockMethodInvocation(),
|
||||
new ConfigAttributeDefinition(),
|
||||
new UsernamePasswordAuthenticationToken("foo", "bar"), null);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,14 +15,20 @@
|
||||
|
||||
package net.sf.acegisecurity.providers;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
|
||||
import net.sf.acegisecurity.*;
|
||||
import junit.framework.TestCase;
|
||||
import net.sf.acegisecurity.Authentication;
|
||||
import net.sf.acegisecurity.AuthenticationException;
|
||||
import net.sf.acegisecurity.AuthenticationServiceException;
|
||||
import net.sf.acegisecurity.GrantedAuthority;
|
||||
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||
import net.sf.acegisecurity.concurrent.ConcurrentSessionControllerImpl;
|
||||
import net.sf.acegisecurity.concurrent.NullConcurrentSessionController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
|
||||
|
||||
/**
|
||||
@@ -59,6 +65,7 @@ public class ProviderManagerTests extends TestCase {
|
||||
"ROLE_TWO")});
|
||||
|
||||
ProviderManager mgr = makeProviderManager();
|
||||
mgr.setApplicationEventPublisher(new MockApplicationEventPublisher(true));
|
||||
|
||||
try {
|
||||
mgr.authenticate(token);
|
||||
@@ -68,13 +75,14 @@ public class ProviderManagerTests extends TestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticationSuccess() {
|
||||
public void testAuthenticationSuccess() throws Exception {
|
||||
TestingAuthenticationToken token = new TestingAuthenticationToken("Test",
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
|
||||
ProviderManager mgr = makeProviderManager();
|
||||
mgr.setApplicationEventPublisher(new MockApplicationEventPublisher(true));
|
||||
Authentication result = mgr.authenticate(token);
|
||||
|
||||
if (!(result instanceof TestingAuthenticationToken)) {
|
||||
@@ -95,6 +103,7 @@ public class ProviderManagerTests extends TestCase {
|
||||
"ROLE_TWO")});
|
||||
|
||||
ProviderManager mgr = makeProviderManagerWithMockProviderWhichReturnsNullInList();
|
||||
mgr.setApplicationEventPublisher(new MockApplicationEventPublisher(true));
|
||||
Authentication result = mgr.authenticate(token);
|
||||
|
||||
if (!(result instanceof TestingAuthenticationToken)) {
|
||||
@@ -166,14 +175,16 @@ public class ProviderManagerTests extends TestCase {
|
||||
assertEquals(1, mgr.getProviders().size());
|
||||
}
|
||||
|
||||
private ProviderManager makeProviderManager() {
|
||||
private ProviderManager makeProviderManager() throws Exception {
|
||||
MockProvider provider1 = new MockProvider();
|
||||
List providers = new Vector();
|
||||
providers.add(provider1);
|
||||
|
||||
ProviderManager mgr = new ProviderManager();
|
||||
mgr.setProviders(providers);
|
||||
|
||||
|
||||
mgr.afterPropertiesSet();
|
||||
return mgr;
|
||||
}
|
||||
|
||||
@@ -233,4 +244,18 @@ public class ProviderManagerTests extends TestCase {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class MockApplicationEventPublisher implements ApplicationEventPublisher {
|
||||
private boolean expectedEvent;
|
||||
|
||||
public MockApplicationEventPublisher(boolean expectedEvent) {
|
||||
this.expectedEvent = expectedEvent;
|
||||
}
|
||||
|
||||
public void publishEvent(ApplicationEvent event) {
|
||||
if (expectedEvent == false) {
|
||||
throw new IllegalStateException("The ApplicationEventPublisher did not expect to receive this event");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,6 @@ import net.sf.acegisecurity.providers.dao.cache.NullUserCache;
|
||||
import net.sf.acegisecurity.providers.dao.salt.SystemWideSaltSource;
|
||||
import net.sf.acegisecurity.providers.encoding.ShaPasswordEncoder;
|
||||
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.DataRetrievalFailureException;
|
||||
|
||||
@@ -67,8 +65,6 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
DaoAuthenticationProvider provider = new DaoAuthenticationProvider();
|
||||
provider.setAuthenticationDao(new MockAuthenticationDaoUserMarissa());
|
||||
provider.setUserCache(new MockUserCache());
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
@@ -92,16 +88,6 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (AccountExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown AccountExpiredException");
|
||||
} catch (AccountExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsIfAccountLocked() {
|
||||
@@ -118,16 +104,6 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (LockedException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown CredentialsExpiredException");
|
||||
} catch (LockedException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsIfCredentialsExpired() {
|
||||
@@ -145,18 +121,9 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown CredentialsExpiredException");
|
||||
} catch (CredentialsExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
// Check that wrong password causes BadCredentialsException, rather than CredentialsExpiredException
|
||||
token = new UsernamePasswordAuthenticationToken("peter", "wrong_password");
|
||||
token = new UsernamePasswordAuthenticationToken("peter",
|
||||
"wrong_password");
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
@@ -180,16 +147,6 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (DisabledException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown DisabledException");
|
||||
} catch (DisabledException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsWhenAuthenticationDaoHasBackendFailure() {
|
||||
@@ -422,11 +379,6 @@ public class DaoAuthenticationProviderTests extends TestCase {
|
||||
assertFalse(provider.isForcePrincipalAsString());
|
||||
provider.setForcePrincipalAsString(true);
|
||||
assertTrue(provider.isForcePrincipalAsString());
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
assertEquals(ClassPathXmlApplicationContext.class.getName(),
|
||||
provider.getContext().getClass().getName());
|
||||
}
|
||||
|
||||
public void testGoesBackToAuthenticationDaoToObtainLatestPasswordIfCachedPasswordSeemsIncorrect() {
|
||||
|
||||
@@ -32,8 +32,6 @@ import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
import net.sf.acegisecurity.providers.dao.cache.EhCacheBasedUserCache;
|
||||
import net.sf.acegisecurity.providers.dao.cache.NullUserCache;
|
||||
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.dao.DataRetrievalFailureException;
|
||||
|
||||
@@ -87,16 +85,6 @@ public class PasswordDaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (AccountExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown AccountExpiredException");
|
||||
} catch (AccountExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsIfAccountLocked() {
|
||||
@@ -113,16 +101,6 @@ public class PasswordDaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (LockedException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown AccountExpiredException");
|
||||
} catch (LockedException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsIfCredentialsExpired() {
|
||||
@@ -139,16 +117,6 @@ public class PasswordDaoAuthenticationProviderTests extends TestCase {
|
||||
} catch (CredentialsExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
provider.setApplicationContext(new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/util/filtertest-valid.xml"));
|
||||
|
||||
try {
|
||||
provider.authenticate(token);
|
||||
fail("Should have thrown CredentialsExpiredException");
|
||||
} catch (CredentialsExpiredException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testAuthenticateFailsIfUserDisabled() {
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
/* Copyright 2004, 2005 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.sf.acegisecurity.providers.dao.event;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import net.sf.acegisecurity.Authentication;
|
||||
import net.sf.acegisecurity.GrantedAuthority;
|
||||
import net.sf.acegisecurity.GrantedAuthorityImpl;
|
||||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
import net.sf.acegisecurity.providers.dao.User;
|
||||
|
||||
|
||||
/**
|
||||
* Tests {@link LoggerListener}.
|
||||
*
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
*/
|
||||
public class LoggerListenerTests extends TestCase {
|
||||
//~ Methods ================================================================
|
||||
|
||||
public final void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(LoggerListenerTests.class);
|
||||
}
|
||||
|
||||
public void testLogsDisabledEvents() {
|
||||
AuthenticationFailureDisabledEvent event = new AuthenticationFailureDisabledEvent(getAuthentication(),
|
||||
getUser());
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
public void testLogsPasswordEvents() {
|
||||
AuthenticationFailurePasswordEvent event = new AuthenticationFailurePasswordEvent(getAuthentication(),
|
||||
getUser());
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
public void testLogsSuccessEvents() {
|
||||
AuthenticationSuccessEvent event = new AuthenticationSuccessEvent(getAuthentication(),
|
||||
getUser());
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
public void testLogsUsernameNotFoundEvents() {
|
||||
AuthenticationFailureUsernameNotFoundEvent event = new AuthenticationFailureUsernameNotFoundEvent(getAuthentication(),
|
||||
getUser());
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
public void testLogsUsernameOfPasswordEvent() {
|
||||
AuthenticationFailureUsernameOrPasswordEvent event = new AuthenticationFailureUsernameOrPasswordEvent(getAuthentication(),
|
||||
getUser());
|
||||
LoggerListener listener = new LoggerListener();
|
||||
listener.onApplicationEvent(event);
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
private Authentication getAuthentication() {
|
||||
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("Principal",
|
||||
"Credentials");
|
||||
authentication.setDetails("127.0.0.1");
|
||||
|
||||
return authentication;
|
||||
}
|
||||
|
||||
private User getUser() {
|
||||
User user = new User("foo", "bar", true, true, true, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_FOOBAR")});
|
||||
|
||||
return user;
|
||||
}
|
||||
}
|
||||
@@ -21,10 +21,10 @@
|
||||
<beans>
|
||||
|
||||
<!-- Automatically receives AuthenticationEvent messages from DaoAuthenticationProvider -->
|
||||
<bean id="authenticationLoggerListener" class="net.sf.acegisecurity.providers.dao.event.LoggerListener"/>
|
||||
<bean id="authenticationLoggerListener" class="net.sf.acegisecurity.event.authentication.LoggerListener"/>
|
||||
|
||||
<!-- Automatically receives AuthenticationEvent messages from AbstractSecurityInterceptor -->
|
||||
<bean id="secureObjectLoggerListener" class="net.sf.acegisecurity.intercept.event.LoggerListener"/>
|
||||
<bean id="secureObjectLoggerListener" class="net.sf.acegisecurity.event.authorization.LoggerListener"/>
|
||||
|
||||
<!-- Setup a cache we can use in tests of the caching layer -->
|
||||
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<bean id="accessDecision" class="net.sf.acegisecurity.MockAccessDecisionManager"/>
|
||||
<bean id="runAs" class="net.sf.acegisecurity.MockRunAsManager"/>
|
||||
|
||||
<bean id="loggerListener" class="net.sf.acegisecurity.intercept.event.LoggerListener"/>
|
||||
<bean id="secureObjectLoggerListener" class="net.sf.acegisecurity.event.authorization.LoggerListener"/>
|
||||
|
||||
<bean id="securityInterceptor" class="net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
|
||||
<property name="authenticationManager"><ref local="authentication"/></property>
|
||||
|
||||
@@ -50,6 +50,6 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="loggerListener" class="net.sf.acegisecurity.intercept.event.LoggerListener"/>
|
||||
<bean id="secureObjectLoggerListener" class="net.sf.acegisecurity.event.authorization.LoggerListener"/>
|
||||
|
||||
</beans>
|
||||
|
||||
Reference in New Issue
Block a user