SEC-1158: Decoupling of Pre/Post annotations implementation from Spring EL.

This commit is contained in:
Luke Taylor
2009-05-11 05:18:20 +00:00
parent acd7dc1f2d
commit 14c4739605
84 changed files with 2489 additions and 2028 deletions

View File

@@ -21,7 +21,7 @@ import javax.annotation.security.RolesAllowed;
import javax.annotation.security.PermitAll;
import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.expression.annotation.PreAuthorize;
import org.springframework.security.access.prepost.PreAuthorize;
/**
* @version $Id$

View File

@@ -3,8 +3,9 @@ package org.springframework.security.access.annotation;
import java.util.ArrayList;
import java.util.List;
import org.springframework.security.access.expression.annotation.PostFilter;
import org.springframework.security.access.expression.annotation.PreFilter;
import org.springframework.security.access.prepost.PostFilter;
import org.springframework.security.access.prepost.PreFilter;
public class ExpressionProtectedBusinessServiceImpl implements BusinessService {

View File

@@ -6,6 +6,7 @@ import java.util.List;
import javax.annotation.security.RolesAllowed;
import javax.annotation.security.PermitAll;
/**
*
* @author Luke Taylor

View File

@@ -23,23 +23,23 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.SecurityConfig;
import org.springframework.security.access.annotation.SecuredMethodSecurityMetadataSource;
import org.springframework.security.access.annotation.SecuredAnnotationSecurityMetadataSource;
import org.springframework.util.StringUtils;
/**
* Tests for {@link org.springframework.security.access.annotation.SecuredMethodSecurityMetadataSource}
* Tests for {@link org.springframework.security.access.annotation.SecuredAnnotationSecurityMetadataSource}
*
* @author Mark St.Godard
* @author Joe Scalise
* @author Ben Alex
* @version $Id$
*/
public class SecuredMethodDefinitionSourceTests extends TestCase {
public class SecuredAnnotationSecurityMetadataDefinitionSourceTests extends TestCase {
//~ Instance fields ================================================================================================
private SecuredMethodSecurityMetadataSource mds = new SecuredMethodSecurityMetadataSource();;
private Log logger = LogFactory.getLog(SecuredMethodDefinitionSourceTests.class);
private SecuredAnnotationSecurityMetadataSource mds = new SecuredAnnotationSecurityMetadataSource();;
private Log logger = LogFactory.getLog(SecuredAnnotationSecurityMetadataDefinitionSourceTests.class);
//~ Methods ========================================================================================================

View File

@@ -11,8 +11,8 @@ import java.util.List;
import org.aopalliance.intercept.MethodInvocation;
import org.junit.Test;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.expression.method.MethodExpressionVoter;
import org.springframework.security.access.expression.method.PreInvocationExpressionAttribute;
import org.springframework.security.access.prepost.PreInvocationAuthorizationAdviceVoter;
import org.springframework.security.access.vote.AccessDecisionVoter;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.util.SimpleMethodInvocation;
@@ -20,7 +20,8 @@ import org.springframework.security.util.SimpleMethodInvocation;
@SuppressWarnings("unchecked")
public class MethodExpressionVoterTests {
private TestingAuthenticationToken joe = new TestingAuthenticationToken("joe", "joespass", "blah");
private MethodExpressionVoter am = new MethodExpressionVoter();
private PreInvocationAuthorizationAdviceVoter am =
new PreInvocationAuthorizationAdviceVoter(new ExpressionBasedPreInvocationAdvice());
@Test
public void hasRoleExpressionAllowsUserWithRole() throws Exception {

View File

@@ -1,4 +1,4 @@
package org.springframework.security.access.expression.support;
package org.springframework.security.access.expression.method;
import static org.junit.Assert.*;
@@ -9,9 +9,9 @@ import org.junit.Test;
import org.springframework.expression.Expression;
import org.springframework.expression.spel.antlr.SpelAntlrExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.security.access.PermissionEvaluator;
import org.springframework.security.access.expression.ExpressionUtils;
import org.springframework.security.access.expression.PermissionEvaluator;
import org.springframework.security.access.expression.support.MethodSecurityExpressionRoot;
import org.springframework.security.access.expression.method.MethodSecurityExpressionRoot;
import org.springframework.security.authentication.AuthenticationTrustResolver;
import org.springframework.security.core.Authentication;

View File

@@ -7,18 +7,22 @@ import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.springframework.security.access.ConfigAttribute;
import org.springframework.security.access.expression.annotation.PostAuthorize;
import org.springframework.security.access.expression.annotation.PostFilter;
import org.springframework.security.access.expression.annotation.PreAuthorize;
import org.springframework.security.access.expression.annotation.PreFilter;
import org.springframework.security.access.expression.method.ExpressionAnnotationMethodSecurityMetadataSource;
import org.springframework.security.access.expression.method.PostInvocationExpressionAttribute;
import org.springframework.security.access.expression.method.PreInvocationExpressionAttribute;
import org.springframework.security.access.intercept.method.MockMethodInvocation;
import org.springframework.security.access.prepost.PostAuthorize;
import org.springframework.security.access.prepost.PostFilter;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.access.prepost.PreFilter;
import org.springframework.security.access.prepost.PrePostAnnotationSecurityMetadataSource;
public class ExpressionAnnotationMethodDefinitionSourceTests {
private ExpressionAnnotationMethodSecurityMetadataSource mds = new ExpressionAnnotationMethodSecurityMetadataSource();
/**
*
* @author Luke Taylor
* @version $Id$
* @since 3.0
*/
public class PrePostAnnotationSecurityMetadataSourceTests {
private PrePostAnnotationSecurityMetadataSource mds =
new PrePostAnnotationSecurityMetadataSource(new ExpressionBasedAnnotationAttributeFactory(new DefaultMethodSecurityExpressionHandler()));
private MockMethodInvocation voidImpl1;
private MockMethodInvocation voidImpl2;

View File

@@ -29,7 +29,6 @@ import org.springframework.security.authentication.LockedException;
import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.authentication.dao.salt.SystemWideSaltSource;
import org.springframework.security.authentication.encoding.ShaPasswordEncoder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;

View File

@@ -19,7 +19,7 @@ import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import org.springframework.security.authentication.AuthenticationServiceException;
import org.springframework.security.authentication.dao.salt.ReflectionSaltSource;
import org.springframework.security.authentication.dao.ReflectionSaltSource;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;

View File

@@ -15,7 +15,7 @@
package org.springframework.security.authentication.dao.salt;
import org.springframework.security.authentication.dao.salt.SystemWideSaltSource;
import org.springframework.security.authentication.dao.SystemWideSaltSource;
import junit.framework.TestCase;

View File

@@ -0,0 +1,9 @@
print authentication.name;
for authority in authentication.authorities:
print authority
print "Granting access"
allow = 1