Refactor Authentication.isAuthenticated() handling to be more performance (as per developer list discussion).
This commit is contained in:
@@ -83,14 +83,14 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
||||
SecurityContextHolder.getContext().setAuthentication(null);
|
||||
}
|
||||
|
||||
public void testCallingAPublicMethodWhenPresentingAnAuthenticationObjectWillProperlySetItsIsAuthenticatedProperty()
|
||||
public void testCallingAPublicMethodWhenPresentingAnAuthenticationObjectWillNotChangeItsIsAuthenticatedProperty()
|
||||
throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_THIS_IS_NOT_REQUIRED_AS_IT_IS_PUBLIC")});
|
||||
"Password");
|
||||
assertTrue(!token.isAuthenticated());
|
||||
SecurityContextHolder.getContext().setAuthentication(token);
|
||||
|
||||
// The associated MockAuthenticationManager WILL accept the above UsernamePasswordAuthenticationToken
|
||||
ITargetObject target = makeInterceptedTarget();
|
||||
String result = target.publicMakeLowerCase("HELLO");
|
||||
assertEquals("hello net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken false",
|
||||
@@ -158,13 +158,13 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")});
|
||||
assertTrue(!token.isAuthenticated());
|
||||
assertTrue(token.isAuthenticated());
|
||||
SecurityContextHolder.getContext().setAuthentication(token);
|
||||
|
||||
ITargetObject target = makeInterceptedTargetWithoutAnAfterInvocationManager();
|
||||
String result = target.makeLowerCase("HELLO");
|
||||
|
||||
// Note we check the isAuthenticated becomes true in following line
|
||||
// Note we check the isAuthenticated remained true in following line
|
||||
assertEquals("hello net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken true",
|
||||
result);
|
||||
|
||||
@@ -203,11 +203,11 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
||||
public void testRejectsCallsWhenAuthenticationIsIncorrect()
|
||||
throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")});
|
||||
"Password");
|
||||
assertTrue(!token.isAuthenticated());
|
||||
SecurityContextHolder.getContext().setAuthentication(token);
|
||||
|
||||
// NB: The associated MockAuthenticationManager WILL reject the above UsernamePasswordAuthenticationToken
|
||||
ITargetObject target = makeInterceptedTargetRejectsAuthentication();
|
||||
|
||||
try {
|
||||
|
||||
@@ -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.
|
||||
@@ -51,9 +51,30 @@ public class UsernamePasswordAuthenticationTokenTests extends TestCase {
|
||||
public void testAuthenticated() {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
|
||||
"Password", null);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
token.setAuthenticated(true);
|
||||
|
||||
// check default given we passed some GrantedAuthorty[]s (well, we passed null)
|
||||
assertTrue(token.isAuthenticated());
|
||||
|
||||
// check explicit set to untrusted (we can safely go from trusted to untrusted, but not the reverse)
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
|
||||
// Now let's create a UsernamePasswordAuthenticationToken without any GrantedAuthorty[]s (different constructor)
|
||||
token = new UsernamePasswordAuthenticationToken("Test", "Password");
|
||||
|
||||
assertTrue(!token.isAuthenticated());
|
||||
|
||||
// check we're allowed to still set it to untrusted
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
|
||||
// check denied changing it to trusted
|
||||
try {
|
||||
token.setAuthenticated(true);
|
||||
fail("Should have prohibited setAuthenticated(true)");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetters() {
|
||||
@@ -67,19 +88,6 @@ public class UsernamePasswordAuthenticationTokenTests extends TestCase {
|
||||
assertEquals("ROLE_TWO", token.getAuthorities()[1].getAuthority());
|
||||
}
|
||||
|
||||
public void testNewAuthorities() {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
|
||||
"Password", null);
|
||||
assertEquals("Test", token.getPrincipal());
|
||||
assertEquals("Password", token.getCredentials());
|
||||
assertEquals(null, token.getAuthorities());
|
||||
|
||||
token.setAuthorities(new GrantedAuthority[] {new GrantedAuthorityImpl(
|
||||
"ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
assertEquals("ROLE_ONE", token.getAuthorities()[0].getAuthority());
|
||||
assertEquals("ROLE_TWO", token.getAuthorities()[1].getAuthority());
|
||||
}
|
||||
|
||||
public void testNoArgConstructor() {
|
||||
try {
|
||||
new UsernamePasswordAuthenticationToken();
|
||||
|
||||
@@ -159,7 +159,6 @@ public class AnonymousAuthenticationTokenTests extends TestCase {
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
token2.setAuthenticated(true);
|
||||
|
||||
assertFalse(token1.equals(token2));
|
||||
}
|
||||
@@ -184,7 +183,7 @@ public class AnonymousAuthenticationTokenTests extends TestCase {
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false); // ignored
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,7 +223,6 @@ public class CasAuthenticationTokenTests extends TestCase {
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
token2.setAuthenticated(true);
|
||||
|
||||
assertTrue(!token1.equals(token2));
|
||||
}
|
||||
@@ -295,15 +294,15 @@ public class CasAuthenticationTokenTests extends TestCase {
|
||||
assertTrue(!token1.equals(token2));
|
||||
}
|
||||
|
||||
public void testSetAuthenticatedIgnored() {
|
||||
public void testSetAuthenticated() {
|
||||
CasAuthenticationToken token = new CasAuthenticationToken("key",
|
||||
"Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")}, makeUserDetails(), new Vector(),
|
||||
"PGTIOU-0-R0zlgrl4pdAQwBvJWO3vnNpevwqStbSGcq3vKB2SqSFFRnjPHt");
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false); // ignored
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
}
|
||||
|
||||
public void testToString() {
|
||||
|
||||
@@ -159,7 +159,6 @@ public class RememberMeAuthenticationTokenTests extends TestCase {
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
token2.setAuthenticated(true);
|
||||
|
||||
assertFalse(token1.equals(token2));
|
||||
}
|
||||
@@ -184,7 +183,7 @@ public class RememberMeAuthenticationTokenTests extends TestCase {
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")});
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false); // ignored
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -49,14 +49,14 @@ public class RunAsUserTokenTests extends TestCase {
|
||||
junit.textui.TestRunner.run(RunAsUserTokenTests.class);
|
||||
}
|
||||
|
||||
public void testAuthenticationSettingAlwaysReturnsTrue() {
|
||||
public void testAuthenticationSetting() {
|
||||
RunAsUserToken token = new RunAsUserToken("my_password", "Test",
|
||||
"Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl(
|
||||
"ROLE_TWO")}, UsernamePasswordAuthenticationToken.class);
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(token.isAuthenticated());
|
||||
assertTrue(!token.isAuthenticated());
|
||||
}
|
||||
|
||||
public void testGetters() {
|
||||
|
||||
Reference in New Issue
Block a user