SEC-1012: Adding generics and general tidying up of tests etc
This commit is contained in:
@@ -52,7 +52,7 @@ public class MockAccessDecisionManager implements AccessDecisionManager {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean supports(Class clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class MockAfterInvocationManager implements AfterInvocationManager {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean supports(Class clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -159,7 +159,7 @@ public class AfterInvocationProviderManagerTests extends TestCase {
|
||||
return returnedObject;
|
||||
}
|
||||
|
||||
public boolean supports(Class<? extends Object> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return secureObject.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
|
||||
@@ -51,10 +51,10 @@ public interface BusinessService {
|
||||
|
||||
public int someOther(int input);
|
||||
|
||||
public List<Object> methodReturningAList(List<Object> someList);
|
||||
public List<?> methodReturningAList(List<?> someList);
|
||||
|
||||
public Object[] methodReturningAnArray(Object[] someArray);
|
||||
|
||||
public List<Object> methodReturningAList(String userName, String extraParam);
|
||||
public List<?> methodReturningAList(String userName, String extraParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ public class BusinessServiceImpl<E extends Entity> implements BusinessService {
|
||||
return input;
|
||||
}
|
||||
|
||||
public List<Object> methodReturningAList(List<Object> someList) {
|
||||
public List<?> methodReturningAList(List<?> someList) {
|
||||
return someList;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ public class ExpressionProtectedBusinessServiceImpl implements BusinessService {
|
||||
|
||||
@PreFilter(filterTarget="someList", value="filterObject == authentication.name or filterObject == 'sam'")
|
||||
@PostFilter("filterObject == 'bob'")
|
||||
public List<Object> methodReturningAList(List<Object> someList) {
|
||||
public List<?> methodReturningAList(List<?> someList) {
|
||||
return someList;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -38,12 +38,12 @@ public class Jsr250BusinessServiceImpl implements BusinessService {
|
||||
return input;
|
||||
}
|
||||
|
||||
public List<Object> methodReturningAList(List<Object> someList) {
|
||||
public List<?> methodReturningAList(List<?> someList) {
|
||||
return someList;
|
||||
}
|
||||
|
||||
public List<Object> methodReturningAList(String userName, String arg2) {
|
||||
return new ArrayList();
|
||||
public List<?> methodReturningAList(String userName, String arg2) {
|
||||
return new ArrayList<Object>();
|
||||
}
|
||||
|
||||
public Object[] methodReturningAnArray(Object[] someArray) {
|
||||
|
||||
+10
-10
@@ -2,6 +2,7 @@ package org.springframework.security.authoritymapping;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -12,15 +13,14 @@ import junit.framework.TestCase;
|
||||
*/
|
||||
public class SimpleMappableRolesRetrieverTests extends TestCase {
|
||||
|
||||
public final void testGetSetMappableRoles() {
|
||||
String[] roles = new String[] { "Role1", "Role2" };
|
||||
SimpleMappableAttributesRetriever r = new SimpleMappableAttributesRetriever();
|
||||
r.setMappableAttributes(roles);
|
||||
String[] result = r.getMappableAttributes();
|
||||
Collection resultColl = Arrays.asList(result);
|
||||
Collection rolesColl = Arrays.asList(roles);
|
||||
assertTrue("Role collections do not match; result: " + resultColl + ", expected: " + rolesColl, rolesColl.containsAll(resultColl)
|
||||
&& resultColl.containsAll(rolesColl));
|
||||
}
|
||||
public final void testGetSetMappableRoles() {
|
||||
String[] roles = new String[] { "Role1", "Role2" };
|
||||
SimpleMappableAttributesRetriever r = new SimpleMappableAttributesRetriever();
|
||||
r.setMappableAttributes(roles);
|
||||
Set<String> result = r.getMappableAttributes();
|
||||
Collection<String> rolesColl = Arrays.asList(roles);
|
||||
assertTrue("Role collections do not match; result: " + result + ", expected: " + rolesColl, rolesColl.containsAll(result)
|
||||
&& result.containsAll(rolesColl));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -100,11 +100,11 @@ public class SimpleRoles2GrantedAuthoritiesMapperTests extends TestCase {
|
||||
|
||||
private void testGetGrantedAuthorities(SimpleAttributes2GrantedAuthoritiesMapper mapper, String[] roles, String[] expectedGas) {
|
||||
List<GrantedAuthority> result = mapper.getGrantedAuthorities(Arrays.asList(roles));
|
||||
Collection resultColl = new ArrayList(result.size());
|
||||
Collection<String> resultColl = new ArrayList<String>(result.size());
|
||||
for (int i = 0; i < result.size(); i++) {
|
||||
resultColl.add(result.get(i).getAuthority());
|
||||
}
|
||||
Collection expectedColl = Arrays.asList(expectedGas);
|
||||
Collection<String> expectedColl = Arrays.asList(expectedGas);
|
||||
assertTrue("Role collections do not match; result: " + resultColl + ", expected: " + expectedColl, expectedColl
|
||||
.containsAll(resultColl)
|
||||
&& resultColl.containsAll(expectedColl));
|
||||
|
||||
+69
-69
@@ -5,96 +5,96 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @author TSARDD
|
||||
* @since 18-okt-2007
|
||||
*/
|
||||
public class XmlMappableRolesRetrieverTests extends TestCase {
|
||||
private static final String DEFAULT_XML = "<roles><role>Role1</role><role>Role2</role></roles>";
|
||||
private static final String DEFAULT_XML = "<roles><role>Role1</role><role>Role2</role></roles>";
|
||||
|
||||
private static final String DEFAULT_XPATH = "/roles/role/text()";
|
||||
private static final String DEFAULT_XPATH = "/roles/role/text()";
|
||||
|
||||
private static final String[] DEFAULT_EXPECTED_ROLES = new String[] { "Role1", "Role2" };
|
||||
private static final String[] DEFAULT_EXPECTED_ROLES = new String[] { "Role1", "Role2" };
|
||||
|
||||
public final void testAfterPropertiesSetException() {
|
||||
TestXmlMappableAttributesRetriever t = new TestXmlMappableAttributesRetriever();
|
||||
try {
|
||||
t.afterPropertiesSet();
|
||||
fail("AfterPropertiesSet didn't throw expected exception");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
} catch (Exception unexpected) {
|
||||
fail("AfterPropertiesSet throws unexpected exception");
|
||||
}
|
||||
}
|
||||
public final void testAfterPropertiesSetException() {
|
||||
TestXmlMappableAttributesRetriever t = new TestXmlMappableAttributesRetriever();
|
||||
try {
|
||||
t.afterPropertiesSet();
|
||||
fail("AfterPropertiesSet didn't throw expected exception");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
} catch (Exception unexpected) {
|
||||
fail("AfterPropertiesSet throws unexpected exception");
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetMappableRoles() {
|
||||
XmlMappableAttributesRetriever r = getXmlMappableRolesRetriever(true, getDefaultInputStream(), DEFAULT_XPATH);
|
||||
String[] resultRoles = r.getMappableAttributes();
|
||||
assertNotNull("Result roles should not be null", resultRoles);
|
||||
assertTrue("Number of result roles doesn't match expected number of roles", resultRoles.length == DEFAULT_EXPECTED_ROLES.length);
|
||||
Collection resultRolesColl = Arrays.asList(resultRoles);
|
||||
Collection expectedRolesColl = Arrays.asList(DEFAULT_EXPECTED_ROLES);
|
||||
assertTrue("Role collections do not match", expectedRolesColl.containsAll(resultRolesColl)
|
||||
&& resultRolesColl.containsAll(expectedRolesColl));
|
||||
}
|
||||
public void testGetMappableRoles() {
|
||||
XmlMappableAttributesRetriever r = getXmlMappableRolesRetriever(true, getDefaultInputStream(), DEFAULT_XPATH);
|
||||
Set<String> resultRoles = r.getMappableAttributes();
|
||||
assertNotNull("Result roles should not be null", resultRoles);
|
||||
assertEquals("Number of result roles doesn't match expected number of roles", DEFAULT_EXPECTED_ROLES.length, resultRoles.size());
|
||||
Collection expectedRolesColl = Arrays.asList(DEFAULT_EXPECTED_ROLES);
|
||||
assertTrue("Role collections do not match", expectedRolesColl.containsAll(resultRoles)
|
||||
&& resultRoles.containsAll(expectedRolesColl));
|
||||
}
|
||||
|
||||
public void testCloseInputStream() {
|
||||
testCloseInputStream(true);
|
||||
}
|
||||
public void testCloseInputStream() {
|
||||
testCloseInputStream(true);
|
||||
}
|
||||
|
||||
public void testDontCloseInputStream() {
|
||||
testCloseInputStream(false);
|
||||
}
|
||||
public void testDontCloseInputStream() {
|
||||
testCloseInputStream(false);
|
||||
}
|
||||
|
||||
private void testCloseInputStream(boolean closeAfterRead) {
|
||||
CloseableByteArrayInputStream is = getDefaultInputStream();
|
||||
XmlMappableAttributesRetriever r = getXmlMappableRolesRetriever(closeAfterRead, is, DEFAULT_XPATH);
|
||||
r.getMappableAttributes();
|
||||
assertEquals(is.isClosed(), closeAfterRead);
|
||||
}
|
||||
private void testCloseInputStream(boolean closeAfterRead) {
|
||||
CloseableByteArrayInputStream is = getDefaultInputStream();
|
||||
XmlMappableAttributesRetriever r = getXmlMappableRolesRetriever(closeAfterRead, is, DEFAULT_XPATH);
|
||||
r.getMappableAttributes();
|
||||
assertEquals(is.isClosed(), closeAfterRead);
|
||||
}
|
||||
|
||||
private XmlMappableAttributesRetriever getXmlMappableRolesRetriever(boolean closeInputStream, InputStream is, String xpath) {
|
||||
XmlMappableAttributesRetriever result = new TestXmlMappableAttributesRetriever();
|
||||
result.setCloseInputStream(closeInputStream);
|
||||
result.setXmlInputStream(is);
|
||||
result.setXpathExpression(xpath);
|
||||
try {
|
||||
result.afterPropertiesSet();
|
||||
} catch (Exception e) {
|
||||
fail("Unexpected exception" + e.toString());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
private XmlMappableAttributesRetriever getXmlMappableRolesRetriever(boolean closeInputStream, InputStream is, String xpath) {
|
||||
XmlMappableAttributesRetriever result = new TestXmlMappableAttributesRetriever();
|
||||
result.setCloseInputStream(closeInputStream);
|
||||
result.setXmlInputStream(is);
|
||||
result.setXpathExpression(xpath);
|
||||
try {
|
||||
result.afterPropertiesSet();
|
||||
} catch (Exception e) {
|
||||
fail("Unexpected exception" + e.toString());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private CloseableByteArrayInputStream getDefaultInputStream() {
|
||||
return getInputStream(DEFAULT_XML);
|
||||
}
|
||||
private CloseableByteArrayInputStream getDefaultInputStream() {
|
||||
return getInputStream(DEFAULT_XML);
|
||||
}
|
||||
|
||||
private CloseableByteArrayInputStream getInputStream(String data) {
|
||||
return new CloseableByteArrayInputStream(data.getBytes());
|
||||
}
|
||||
private CloseableByteArrayInputStream getInputStream(String data) {
|
||||
return new CloseableByteArrayInputStream(data.getBytes());
|
||||
}
|
||||
|
||||
private static final class TestXmlMappableAttributesRetriever extends XmlMappableAttributesRetriever {
|
||||
}
|
||||
private static final class TestXmlMappableAttributesRetriever extends XmlMappableAttributesRetriever {
|
||||
}
|
||||
|
||||
private static final class CloseableByteArrayInputStream extends ByteArrayInputStream {
|
||||
private boolean closed = false;
|
||||
private static final class CloseableByteArrayInputStream extends ByteArrayInputStream {
|
||||
private boolean closed = false;
|
||||
|
||||
public CloseableByteArrayInputStream(byte[] buf) {
|
||||
super(buf);
|
||||
}
|
||||
public CloseableByteArrayInputStream(byte[] buf) {
|
||||
super(buf);
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
super.close();
|
||||
closed = true;
|
||||
}
|
||||
public void close() throws IOException {
|
||||
super.close();
|
||||
closed = true;
|
||||
}
|
||||
|
||||
public boolean isClosed() {
|
||||
return closed;
|
||||
}
|
||||
}
|
||||
public boolean isClosed() {
|
||||
return closed;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -221,11 +221,11 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
|
||||
AUTH_PROVIDER_XML);
|
||||
SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken("bob","bobspassword"));
|
||||
target = (BusinessService) appContext.getBean("target");
|
||||
List arg = new ArrayList();
|
||||
List<String> arg = new ArrayList<String>();
|
||||
arg.add("joe");
|
||||
arg.add("bob");
|
||||
arg.add("sam");
|
||||
List result = target.methodReturningAList(arg);
|
||||
List<?> result = target.methodReturningAList(arg);
|
||||
// Expression is (filterObject == name or filterObject == 'sam'), so "joe" should be gone after pre-filter
|
||||
// PostFilter should remove sam from the return object
|
||||
assertEquals(1, result.size());
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ public class MockAfterInvocationProvider implements AfterInvocationProvider {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean supports(Class<? extends Object> clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+22
-38
@@ -15,23 +15,18 @@
|
||||
|
||||
package org.springframework.security.intercept.method;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.security.GrantedAuthority;
|
||||
import org.springframework.security.GrantedAuthorityImpl;
|
||||
import org.springframework.security.ITargetObject;
|
||||
import org.springframework.security.OtherTargetObject;
|
||||
|
||||
import org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor;
|
||||
|
||||
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
|
||||
|
||||
import org.springframework.security.util.MethodInvocationUtils;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import org.aopalliance.intercept.MethodInvocation;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.security.ITargetObject;
|
||||
import org.springframework.security.OtherTargetObject;
|
||||
import org.springframework.security.intercept.method.aopalliance.MethodSecurityInterceptor;
|
||||
import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.util.AuthorityUtils;
|
||||
import org.springframework.security.util.MethodInvocationUtils;
|
||||
|
||||
|
||||
/**
|
||||
@@ -40,16 +35,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
*/
|
||||
public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
//~ Constructors ===================================================================================================
|
||||
|
||||
public MethodInvocationPrivilegeEvaluatorTests() {
|
||||
super();
|
||||
}
|
||||
|
||||
public MethodInvocationPrivilegeEvaluatorTests(String arg0) {
|
||||
super(arg0);
|
||||
}
|
||||
public class MethodInvocationPrivilegeEvaluatorTests {
|
||||
|
||||
//~ Methods ========================================================================================================
|
||||
|
||||
@@ -60,10 +46,6 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
return context.getBean("target");
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(MethodInvocationPrivilegeEvaluatorTests.class);
|
||||
}
|
||||
|
||||
private MethodSecurityInterceptor makeSecurityInterceptor() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"org/springframework/security/intercept/method/aopalliance/applicationContext.xml");
|
||||
@@ -71,11 +53,12 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
return (MethodSecurityInterceptor) context.getBean("securityInterceptor");
|
||||
}
|
||||
|
||||
public void testAllowsAccessUsingCreate() throws Exception {
|
||||
@Test
|
||||
public void allowsAccessUsingCreate() throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")});
|
||||
AuthorityUtils.createAuthorityList("MOCK_LOWER"));
|
||||
Object object = lookupTargetObject();
|
||||
MethodInvocation mi = MethodInvocationUtils.create(object, "makeLowerCase", new Object[] {"foobar"});
|
||||
MethodInvocation mi = MethodInvocationUtils.create(object, "makeLowerCase", "foobar");
|
||||
MethodSecurityInterceptor interceptor = makeSecurityInterceptor();
|
||||
|
||||
MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator();
|
||||
@@ -85,10 +68,10 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
assertTrue(mipe.isAllowed(mi, token));
|
||||
}
|
||||
|
||||
public void testAllowsAccessUsingCreateFromClass()
|
||||
throws Exception {
|
||||
@Test
|
||||
public void allowsAccessUsingCreateFromClass() throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")});
|
||||
AuthorityUtils.createAuthorityList("MOCK_LOWER"));
|
||||
MethodInvocation mi = MethodInvocationUtils.createFromClass(new OtherTargetObject(), ITargetObject.class, "makeLowerCase",
|
||||
new Class[] {String.class}, new Object[] {"Hello world"});
|
||||
MethodSecurityInterceptor interceptor = makeSecurityInterceptor();
|
||||
@@ -100,9 +83,10 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
assertTrue(mipe.isAllowed(mi, token));
|
||||
}
|
||||
|
||||
public void testDeclinesAccessUsingCreate() throws Exception {
|
||||
@Test
|
||||
public void declinesAccessUsingCreate() throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_NOT_HELD")});
|
||||
AuthorityUtils.createAuthorityList("ROLE_NOT_HELD"));
|
||||
Object object = lookupTargetObject();
|
||||
MethodInvocation mi = MethodInvocationUtils.create(object, "makeLowerCase", new Object[] {"foobar"});
|
||||
MethodSecurityInterceptor interceptor = makeSecurityInterceptor();
|
||||
@@ -114,10 +98,10 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase {
|
||||
assertFalse(mipe.isAllowed(mi, token));
|
||||
}
|
||||
|
||||
public void testDeclinesAccessUsingCreateFromClass()
|
||||
throws Exception {
|
||||
@Test
|
||||
public void declinesAccessUsingCreateFromClass() throws Exception {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_NOT_HELD")});
|
||||
AuthorityUtils.createAuthorityList("ROLE_NOT_HELD"));
|
||||
MethodInvocation mi = MethodInvocationUtils.createFromClass(new OtherTargetObject(), ITargetObject.class, "makeLowerCase",
|
||||
new Class[] {String.class}, new Object[] {"helloWorld"});
|
||||
MethodSecurityInterceptor interceptor = makeSecurityInterceptor();
|
||||
|
||||
+2
-2
@@ -407,7 +407,7 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
||||
throw new UnsupportedOperationException("mock method not implemented");
|
||||
}
|
||||
|
||||
public boolean supports(Class clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
if (String.class.isAssignableFrom(clazz)) {
|
||||
return true;
|
||||
} else {
|
||||
@@ -426,7 +426,7 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
||||
throw new UnsupportedOperationException("mock method not implemented");
|
||||
}
|
||||
|
||||
public boolean supports(Class clazz) {
|
||||
public boolean supports(Class<?> clazz) {
|
||||
if (String.class.isAssignableFrom(clazz)) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
+2
-19
@@ -42,26 +42,9 @@ import org.springframework.security.util.AuthorityUtils;
|
||||
* @version $Id$
|
||||
*/
|
||||
public class AspectJSecurityInterceptorTests extends TestCase {
|
||||
//~ Constructors ===================================================================================================
|
||||
|
||||
public AspectJSecurityInterceptorTests() {
|
||||
}
|
||||
|
||||
public AspectJSecurityInterceptorTests(String arg0) {
|
||||
super(arg0);
|
||||
}
|
||||
|
||||
//~ Methods ========================================================================================================
|
||||
|
||||
public final void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
protected void tearDown() throws Exception {
|
||||
super.tearDown();
|
||||
SecurityContextHolder.clearContext();
|
||||
}
|
||||
|
||||
public void testCallbackIsInvokedWhenPermissionGranted() throws Exception {
|
||||
AspectJSecurityInterceptor si = new AspectJSecurityInterceptor();
|
||||
si.setApplicationEventPublisher(new MockApplicationEventPublisher(true));
|
||||
@@ -78,7 +61,7 @@ public class AspectJSecurityInterceptorTests extends TestCase {
|
||||
|
||||
si.afterPropertiesSet();
|
||||
|
||||
Class clazz = TargetObject.class;
|
||||
Class<TargetObject> clazz = TargetObject.class;
|
||||
Method method = clazz.getMethod("countLength", new Class[] {String.class});
|
||||
MockJoinPoint joinPoint = new MockJoinPoint(new TargetObject(), method);
|
||||
|
||||
@@ -108,7 +91,7 @@ public class AspectJSecurityInterceptorTests extends TestCase {
|
||||
|
||||
si.afterPropertiesSet();
|
||||
|
||||
Class clazz = TargetObject.class;
|
||||
Class<TargetObject> clazz = TargetObject.class;
|
||||
Method method = clazz.getMethod("countLength", new Class[] {String.class});
|
||||
MockJoinPoint joinPoint = new MockJoinPoint(new TargetObject(), method);
|
||||
|
||||
|
||||
+14
-34
@@ -15,10 +15,11 @@
|
||||
|
||||
package org.springframework.security.providers;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import org.springframework.security.GrantedAuthority;
|
||||
import org.springframework.security.GrantedAuthorityImpl;
|
||||
import org.junit.Test;
|
||||
import org.springframework.security.util.AuthorityUtils;
|
||||
|
||||
|
||||
@@ -28,28 +29,12 @@ import org.springframework.security.util.AuthorityUtils;
|
||||
* @author Ben Alex
|
||||
* @version $Id$
|
||||
*/
|
||||
public class UsernamePasswordAuthenticationTokenTests extends TestCase {
|
||||
//~ Constructors ===================================================================================================
|
||||
|
||||
public UsernamePasswordAuthenticationTokenTests() {
|
||||
super();
|
||||
}
|
||||
|
||||
public UsernamePasswordAuthenticationTokenTests(String arg0) {
|
||||
super(arg0);
|
||||
}
|
||||
public class UsernamePasswordAuthenticationTokenTests {
|
||||
|
||||
//~ Methods ========================================================================================================
|
||||
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(UsernamePasswordAuthenticationTokenTests.class);
|
||||
}
|
||||
|
||||
public final void setUp() throws Exception {
|
||||
super.setUp();
|
||||
}
|
||||
|
||||
public void testAuthenticated() {
|
||||
@Test
|
||||
public void authenticatedPropertyContractIsSatisfied() {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password", AuthorityUtils.NO_AUTHORITIES);
|
||||
|
||||
// check default given we passed some GrantedAuthorty[]s (well, we passed empty list)
|
||||
@@ -73,27 +58,22 @@ public class UsernamePasswordAuthenticationTokenTests extends TestCase {
|
||||
token.setAuthenticated(true);
|
||||
fail("Should have prohibited setAuthenticated(true)");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testGetters() {
|
||||
@Test
|
||||
public void gettersReturnCorrectData() {
|
||||
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"));
|
||||
assertEquals("Test", token.getPrincipal());
|
||||
assertEquals("Password", token.getCredentials());
|
||||
assertEquals("ROLE_ONE", token.getAuthorities().get(0).getAuthority());
|
||||
assertEquals("ROLE_TWO", token.getAuthorities().get(1).getAuthority());
|
||||
}
|
||||
|
||||
public void testNoArgConstructorDoesntExist() {
|
||||
Class clazz = UsernamePasswordAuthenticationToken.class;
|
||||
|
||||
try {
|
||||
clazz.getDeclaredConstructor((Class[]) null);
|
||||
fail("Should have thrown NoSuchMethodException");
|
||||
} catch (NoSuchMethodException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
@Test(expected=NoSuchMethodException.class)
|
||||
public void testNoArgConstructorDoesntExist() throws Exception {
|
||||
Class<?> clazz = UsernamePasswordAuthenticationToken.class;
|
||||
clazz.getDeclaredConstructor((Class[]) null);
|
||||
}
|
||||
}
|
||||
|
||||
+18
-40
@@ -15,6 +15,8 @@
|
||||
|
||||
package org.springframework.security.providers.anonymous;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.springframework.security.GrantedAuthority;
|
||||
@@ -30,60 +32,46 @@ import org.springframework.security.util.AuthorityUtils;
|
||||
* @version $Id$
|
||||
*/
|
||||
public class AnonymousAuthenticationTokenTests extends TestCase {
|
||||
|
||||
private final static List<GrantedAuthority> ROLES_12 = AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO");
|
||||
|
||||
//~ Methods ========================================================================================================
|
||||
|
||||
public void testConstructorRejectsNulls() {
|
||||
try {
|
||||
new AnonymousAuthenticationToken(null, "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
new AnonymousAuthenticationToken(null, "Test", ROLES_12);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
new AnonymousAuthenticationToken("key", null,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
new AnonymousAuthenticationToken("key", null, ROLES_12);
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
// try {
|
||||
// new AnonymousAuthenticationToken("key", "Test", null);
|
||||
// fail("Should have thrown IllegalArgumentException");
|
||||
// } catch (IllegalArgumentException expected) {
|
||||
// assertTrue(true);
|
||||
// }
|
||||
|
||||
try {
|
||||
new AnonymousAuthenticationToken("key", "Test", new GrantedAuthority[] {null});
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
|
||||
try {
|
||||
new AnonymousAuthenticationToken("key", "Test", AuthorityUtils.NO_AUTHORITIES );
|
||||
fail("Should have thrown IllegalArgumentException");
|
||||
} catch (IllegalArgumentException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testEqualsWhenEqual() {
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
|
||||
assertEquals(token1, token2);
|
||||
}
|
||||
|
||||
public void testGetters() {
|
||||
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
|
||||
assertEquals("key".hashCode(), token.getKeyHash());
|
||||
assertEquals("Test", token.getPrincipal());
|
||||
@@ -94,49 +82,39 @@ public class AnonymousAuthenticationTokenTests extends TestCase {
|
||||
}
|
||||
|
||||
public void testNoArgConstructorDoesntExist() {
|
||||
Class clazz = AnonymousAuthenticationToken.class;
|
||||
Class<?> clazz = AnonymousAuthenticationToken.class;
|
||||
|
||||
try {
|
||||
clazz.getDeclaredConstructor((Class[]) null);
|
||||
fail("Should have thrown NoSuchMethodException");
|
||||
} catch (NoSuchMethodException expected) {
|
||||
assertTrue(true);
|
||||
}
|
||||
}
|
||||
|
||||
public void testNotEqualsDueToAbstractParentEqualsCheck() {
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "DIFFERENT_PRINCIPAL",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("key", "DIFFERENT_PRINCIPAL", ROLES_12);
|
||||
|
||||
assertFalse(token1.equals(token2));
|
||||
}
|
||||
|
||||
public void testNotEqualsDueToDifferentAuthenticationClass() {
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
|
||||
UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test", "Password",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
UsernamePasswordAuthenticationToken token2 = new UsernamePasswordAuthenticationToken("Test", "Password", ROLES_12);
|
||||
|
||||
assertFalse(token1.equals(token2));
|
||||
}
|
||||
|
||||
public void testNotEqualsDueToKey() {
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token1 = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("DIFFERENT_KEY", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token2 = new AnonymousAuthenticationToken("DIFFERENT_KEY", "Test", ROLES_12);
|
||||
|
||||
assertFalse(token1.equals(token2));
|
||||
}
|
||||
|
||||
public void testSetAuthenticatedIgnored() {
|
||||
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("key", "Test",
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("key", "Test", ROLES_12);
|
||||
assertTrue(token.isAuthenticated());
|
||||
token.setAuthenticated(false);
|
||||
assertTrue(!token.isAuthenticated());
|
||||
|
||||
+22
-22
@@ -3,32 +3,32 @@ package org.springframework.security.ui.preauth.j2ee;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class WebXmlJ2eeDefinedRolesRetrieverTests extends TestCase {
|
||||
|
||||
public final void testRole1To4Roles() throws Exception {
|
||||
final List ROLE1TO4_EXPECTED_ROLES = Arrays.asList(new String[] { "Role1", "Role2", "Role3", "Role4" });
|
||||
InputStream role1to4InputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("webxml/Role1-4.web.xml");
|
||||
WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever();
|
||||
rolesRetriever.setWebXmlInputStream(role1to4InputStream);
|
||||
rolesRetriever.afterPropertiesSet();
|
||||
String[] j2eeRoles = rolesRetriever.getMappableAttributes();
|
||||
assertNotNull(j2eeRoles);
|
||||
List j2eeRolesList = Arrays.asList(j2eeRoles);
|
||||
assertTrue("J2eeRoles expected size: " + ROLE1TO4_EXPECTED_ROLES.size() + ", actual size: " + j2eeRolesList.size(), j2eeRolesList
|
||||
.size() == ROLE1TO4_EXPECTED_ROLES.size());
|
||||
assertTrue("J2eeRoles expected contents (arbitrary order): " + ROLE1TO4_EXPECTED_ROLES + ", actual content: " + j2eeRolesList,
|
||||
j2eeRolesList.containsAll(ROLE1TO4_EXPECTED_ROLES));
|
||||
}
|
||||
public final void testRole1To4Roles() throws Exception {
|
||||
final List<String> ROLE1TO4_EXPECTED_ROLES = Arrays.asList(new String[] { "Role1", "Role2", "Role3", "Role4" });
|
||||
InputStream role1to4InputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("webxml/Role1-4.web.xml");
|
||||
WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever();
|
||||
rolesRetriever.setWebXmlInputStream(role1to4InputStream);
|
||||
rolesRetriever.afterPropertiesSet();
|
||||
Set<String> j2eeRoles = rolesRetriever.getMappableAttributes();
|
||||
assertNotNull(j2eeRoles);
|
||||
assertTrue("J2eeRoles expected size: " + ROLE1TO4_EXPECTED_ROLES.size() + ", actual size: " + j2eeRoles.size(),
|
||||
j2eeRoles.size() == ROLE1TO4_EXPECTED_ROLES.size());
|
||||
assertTrue("J2eeRoles expected contents (arbitrary order): " + ROLE1TO4_EXPECTED_ROLES + ", actual content: " + j2eeRoles,
|
||||
j2eeRoles.containsAll(ROLE1TO4_EXPECTED_ROLES));
|
||||
}
|
||||
|
||||
public final void testGetZeroJ2eeRoles() throws Exception {
|
||||
InputStream noRolesInputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("webxml/NoRoles.web.xml");
|
||||
WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever();
|
||||
rolesRetriever.setWebXmlInputStream(noRolesInputStream);
|
||||
rolesRetriever.afterPropertiesSet();
|
||||
String[] j2eeRoles = rolesRetriever.getMappableAttributes();
|
||||
assertTrue("J2eeRoles expected size: 0, actual size: " + j2eeRoles.length, j2eeRoles.length == 0);
|
||||
}
|
||||
public final void testGetZeroJ2eeRoles() throws Exception {
|
||||
InputStream noRolesInputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("webxml/NoRoles.web.xml");
|
||||
WebXmlMappableAttributesRetriever rolesRetriever = new WebXmlMappableAttributesRetriever();
|
||||
rolesRetriever.setWebXmlInputStream(noRolesInputStream);
|
||||
rolesRetriever.afterPropertiesSet();
|
||||
Set<String> j2eeRoles = rolesRetriever.getMappableAttributes();
|
||||
assertEquals("J2eeRoles expected size: 0, actual size: " + j2eeRoles.size(), 0, j2eeRoles.size());
|
||||
}
|
||||
}
|
||||
|
||||
+14
-18
@@ -40,6 +40,7 @@ import org.springframework.security.userdetails.User;
|
||||
import org.springframework.security.userdetails.UserDetails;
|
||||
import org.springframework.security.userdetails.UserDetailsService;
|
||||
import org.springframework.security.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.security.util.AuthorityUtils;
|
||||
import org.springframework.security.util.FieldUtils;
|
||||
import org.springframework.security.util.MockFilterChain;
|
||||
|
||||
@@ -52,6 +53,7 @@ import org.springframework.security.util.MockFilterChain;
|
||||
* @version $Id$
|
||||
*/
|
||||
public class SwitchUserProcessingFilterTests {
|
||||
private final static List<GrantedAuthority> ROLES_12 = AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO");
|
||||
|
||||
@Before
|
||||
public void authenticateCurrentUser() {
|
||||
@@ -199,16 +201,14 @@ public class SwitchUserProcessingFilterTests {
|
||||
@Test
|
||||
public void exitUserJackLordToDanoSucceeds() throws Exception {
|
||||
// original user
|
||||
GrantedAuthority[] auths = {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")};
|
||||
UsernamePasswordAuthenticationToken source = new UsernamePasswordAuthenticationToken("dano", "hawaii50", auths);
|
||||
UsernamePasswordAuthenticationToken source = new UsernamePasswordAuthenticationToken("dano", "hawaii50", ROLES_12);
|
||||
|
||||
// set current user (Admin)
|
||||
GrantedAuthority[] adminAuths = {
|
||||
new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO"),
|
||||
new SwitchUserGrantedAuthority("PREVIOUS_ADMINISTRATOR", source)
|
||||
};
|
||||
UsernamePasswordAuthenticationToken admin = new UsernamePasswordAuthenticationToken("jacklord", "hawaii50",
|
||||
adminAuths);
|
||||
List<GrantedAuthority> adminAuths = new ArrayList<GrantedAuthority>();
|
||||
adminAuths.addAll(ROLES_12);
|
||||
adminAuths.add(new SwitchUserGrantedAuthority("PREVIOUS_ADMINISTRATOR", source));
|
||||
UsernamePasswordAuthenticationToken admin =
|
||||
new UsernamePasswordAuthenticationToken("jacklord", "hawaii50", adminAuths);
|
||||
|
||||
SecurityContextHolder.getContext().setAuthentication(admin);
|
||||
|
||||
@@ -333,8 +333,8 @@ public class SwitchUserProcessingFilterTests {
|
||||
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter();
|
||||
filter.setUserDetailsService(new MockUserDetailsService());
|
||||
filter.setSwitchUserAuthorityChanger(new SwitchUserAuthorityChanger() {
|
||||
public List modifyGrantedAuthorities(UserDetails targetUser, Authentication currentAuthentication, List authoritiesToBeGranted) {
|
||||
List auths = new ArrayList();
|
||||
public List<GrantedAuthority> modifyGrantedAuthorities(UserDetails targetUser, Authentication currentAuthentication, List<GrantedAuthority> authoritiesToBeGranted) {
|
||||
List <GrantedAuthority>auths = new ArrayList<GrantedAuthority>();
|
||||
auths.add(new GrantedAuthorityImpl("ROLE_NEW"));
|
||||
return auths;
|
||||
}
|
||||
@@ -358,17 +358,13 @@ public class SwitchUserProcessingFilterTests {
|
||||
// wofat (account expired)
|
||||
// steve (credentials expired)
|
||||
if ("jacklord".equals(username) || "dano".equals(username)) {
|
||||
return new User(username, password, true, true, true, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
return new User(username, password, true, true, true, true, ROLES_12);
|
||||
} else if ("mcgarrett".equals(username)) {
|
||||
return new User(username, password, false, true, true, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
return new User(username, password, false, true, true, true, ROLES_12);
|
||||
} else if ("wofat".equals(username)) {
|
||||
return new User(username, password, true, false, true, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
return new User(username, password, true, false, true, true, ROLES_12);
|
||||
} else if ("steve".equals(username)) {
|
||||
return new User(username, password, true, true, false, true,
|
||||
new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_ONE"), new GrantedAuthorityImpl("ROLE_TWO")});
|
||||
return new User(username, password, true, true, false, true, ROLES_12);
|
||||
} else {
|
||||
throw new UsernameNotFoundException("Could not find: " + username);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user