Author: ningjiang Date: Sat Jul 10 07:57:49 2010 New Revision: 962782 URL: http://svn.apache.org/viewvc?rev=962782&view=rev Log: CAMEL-2930 Upgrade to spring security 3.0.3
Modified: camel/trunk/components/camel-spring-security/pom.xml camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/AuthenticationAdapter.java camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/DefaultAuthenticationAdapter.java camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAccessPolicy.java camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/SpringSecurityCamelContext.xml camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/commonSecurity.xml camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicy.xml Modified: camel/trunk/components/camel-spring-security/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/pom.xml?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/pom.xml (original) +++ camel/trunk/components/camel-spring-security/pom.xml Sat Jul 10 07:57:49 2010 @@ -14,7 +14,7 @@ <properties> <camel.osgi.export.pkg>org.apache.camel.component.spring.security.*</camel.osgi.export.pkg> - <camel.osgi.import.before.defaults>org.springframework.security.*;version="[2,3)"</camel.osgi.import.before.defaults> + <camel.osgi.import.before.defaults>org.springframework.security.*;version="[3,4)"</camel.osgi.import.before.defaults> </properties> <dependencies> @@ -29,7 +29,7 @@ <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> - <version>2.0.5.RELEASE</version> + <version>${spring-security-version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> @@ -42,6 +42,11 @@ </exclusions> </dependency> <dependency> + <groupId>org.springframework.security</groupId> + <artifactId>spring-security-config</artifactId> + <version>${spring-security-version}</version> + </dependency> + <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-test</artifactId> <scope>test</scope> Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/AuthenticationAdapter.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/AuthenticationAdapter.java?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/AuthenticationAdapter.java (original) +++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/AuthenticationAdapter.java Sat Jul 10 07:57:49 2010 @@ -18,7 +18,7 @@ package org.apache.camel.component.sprin import javax.security.auth.Subject; -import org.springframework.security.Authentication; +import org.springframework.security.core.Authentication; public interface AuthenticationAdapter { Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/DefaultAuthenticationAdapter.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/DefaultAuthenticationAdapter.java?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/DefaultAuthenticationAdapter.java (original) +++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/DefaultAuthenticationAdapter.java Sat Jul 10 07:57:49 2010 @@ -20,7 +20,7 @@ import java.util.Set; import javax.security.auth.Subject; -import org.springframework.security.Authentication; +import org.springframework.security.core.Authentication; public class DefaultAuthenticationAdapter implements AuthenticationAdapter { Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAccessPolicy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAccessPolicy.java?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAccessPolicy.java (original) +++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAccessPolicy.java Sat Jul 10 07:57:49 2010 @@ -16,26 +16,25 @@ */ package org.apache.camel.component.spring.security; -import org.springframework.security.ConfigAttributeDefinition; + +import java.util.List; + +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.SecurityConfig; import org.springframework.util.Assert; import org.springframework.util.StringUtils; public class SpringSecurityAccessPolicy { - private final ConfigAttributeDefinition configAttributeDefinition; + private final List<ConfigAttribute> configAttributes; public SpringSecurityAccessPolicy(String access) { Assert.isTrue(access != null, "The access attribute must not be null."); - - String[] accessValues = StringUtils.trimArrayElements(StringUtils - .commaDelimitedListToStringArray(access)); - - this.configAttributeDefinition = (accessValues.length > 0) - ? new ConfigAttributeDefinition(accessValues) : null; + configAttributes = SecurityConfig.createListFromCommaDelimitedString(access); } - public ConfigAttributeDefinition getConfigAttributeDefinition() { - return this.configAttributeDefinition; + public List<ConfigAttribute> getConfigAttributes() { + return configAttributes; } } Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java (original) +++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicy.java Sat Jul 10 07:57:49 2010 @@ -16,6 +16,8 @@ */ package org.apache.camel.component.spring.security; +import java.util.List; + import javax.security.auth.Subject; import org.apache.camel.CamelAuthorizationException; @@ -33,15 +35,15 @@ import org.springframework.beans.factory import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; -import org.springframework.security.AccessDecisionManager; -import org.springframework.security.AccessDeniedException; -import org.springframework.security.Authentication; -import org.springframework.security.AuthenticationManager; -import org.springframework.security.ConfigAttributeDefinition; -import org.springframework.security.SpringSecurityException; -import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.event.authorization.AuthorizationFailureEvent; -import org.springframework.security.event.authorization.AuthorizedEvent; +import org.springframework.security.access.AccessDecisionManager; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.access.ConfigAttribute; +import org.springframework.security.access.event.AuthorizationFailureEvent; +import org.springframework.security.access.event.AuthorizedEvent; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.util.Assert; public class SpringSecurityAuthorizationPolicy extends IdentifiedType implements AuthorizationPolicy, InitializingBean, ApplicationEventPublisherAware { @@ -63,7 +65,7 @@ public class SpringSecurityAuthorization } protected void beforeProcess(Exchange exchange) throws Exception { - ConfigAttributeDefinition attributes = accessPolicy.getConfigAttributeDefinition(); + List<ConfigAttribute> attributes = accessPolicy.getConfigAttributes(); try { Authentication authToken = getAuthentication(exchange.getIn()); @@ -87,7 +89,7 @@ public class SpringSecurityAuthorization } publishEvent(new AuthorizedEvent(exchange, attributes, authenticated)); - } catch (SpringSecurityException exception) { + } catch (RuntimeException exception) { CamelAuthorizationException authorizationException = new CamelAuthorizationException("Cannot access the processor which has been protected.", exchange, exception); throw authorizationException; Modified: camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java (original) +++ camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java Sat Jul 10 07:57:49 2010 @@ -16,6 +16,10 @@ */ package org.apache.camel.component.spring.security; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + import javax.security.auth.Subject; import org.apache.camel.CamelAuthorizationException; @@ -25,12 +29,11 @@ import org.apache.camel.test.junit4.Came import org.junit.Test; import org.springframework.context.support.AbstractXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.security.Authentication; -import org.springframework.security.AuthenticationManager; -import org.springframework.security.GrantedAuthority; -import org.springframework.security.GrantedAuthorityImpl; -import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.providers.UsernamePasswordAuthenticationToken; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.GrantedAuthorityImpl; +import org.springframework.security.core.context.SecurityContextHolder; public class SpringSecurityAuthorizationPolicyTest extends CamelSpringTestSupport { @@ -50,6 +53,7 @@ public class SpringSecurityAuthorization sendMessageWithAuthentication("bob", "bobspassword", "ROLE_USER"); fail("we should get the access deny exception here"); } catch (Exception exception) { + exception.printStackTrace(); // the exception should be caused by CamelAuthorizationException assertTrue("Expect CamelAuthorizationException here", exception.getCause() instanceof CamelAuthorizationException); } @@ -71,9 +75,9 @@ public class SpringSecurityAuthorization private Authentication createAuthenticationToken(String username, String password, String... roles) { Authentication authToken; if (roles != null && roles.length > 0) { - GrantedAuthority[] authorities = new GrantedAuthority[roles.length]; + List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(roles.length); for (int i = 0; i < roles.length; i++) { - authorities[i] = new GrantedAuthorityImpl(roles[i]); + authorities.add(new GrantedAuthorityImpl(roles[i])); } authToken = new UsernamePasswordAuthenticationToken(username, password, authorities); } else { Modified: camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/SpringSecurityCamelContext.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/SpringSecurityCamelContext.xml?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/SpringSecurityCamelContext.xml (original) +++ camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/SpringSecurityCamelContext.xml Sat Jul 10 07:57:49 2010 @@ -26,7 +26,7 @@ http://camel.apache.org/schema/spring-security http://camel.apache.org/schema/spring-security/camel-spring-security.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security.xsd"> + http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> <!-- import the spring security configuration --> <import resource="classpath:org/apache/camel/component/spring/security/commonSecurity.xml"/> Modified: camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/commonSecurity.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/commonSecurity.xml?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/commonSecurity.xml (original) +++ camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/commonSecurity.xml Sat Jul 10 07:57:49 2010 @@ -22,21 +22,25 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security.xsd"> + http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> + + + <!-- bean id="authenticationManager" class="org.springframework.security.MockAuthenticationManager"/--> + - <bean id="authenticationManager" class="org.springframework.security.MockAuthenticationManager"/> - - <bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased"> + <bean id="accessDecisionManager" class="org.springframework.security.access.vote.AffirmativeBased"> <property name="allowIfAllAbstainDecisions" value="true"/> <property name="decisionVoters"> <list> - <bean class="org.springframework.security.vote.RoleVoter"/> + <bean class="org.springframework.security.access.vote.RoleVoter"/> </list> </property> </bean> - - <spring-security:authentication-provider user-service-ref="userDetailsService"/> - + + <spring-security:authentication-manager alias="authenticationManager"> + <spring-security:authentication-provider user-service-ref="userDetailsService"/> + </spring-security:authentication-manager> + <spring-security:user-service id="userDetailsService"> <spring-security:user name="jim" password="jimspassword" authorities="ROLE_USER, ROLE_ADMIN"/> <spring-security:user name="bob" password="bobspassword" authorities="ROLE_USER"/> Modified: camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicy.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicy.xml?rev=962782&r1=962781&r2=962782&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicy.xml (original) +++ camel/trunk/components/camel-spring-security/src/test/resources/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicy.xml Sat Jul 10 07:57:49 2010 @@ -25,7 +25,7 @@ http://camel.apache.org/schema/spring-security http://camel.apache.org/schema/spring-security/camel-spring-security.xsd http://www.springframework.org/schema/security - http://www.springframework.org/schema/security/spring-security.xsd"> + http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> <import resource="classpath:org/apache/camel/component/spring/security/commonSecurity.xml"/>