Author: ningjiang Date: Wed Apr 14 09:47:57 2010 New Revision: 933898 URL: http://svn.apache.org/viewvc?rev=933898&view=rev Log: CAMEL-2643 Added test and update the schema file for it
Modified: camel/trunk/components/camel-spring-security/src/main/resources/schema/camel-spring-security.xsd camel/trunk/components/camel-spring-security/src/test/java/org/apache/camel/component/spring/security/SpringSecurityAuthorizationPolicyTest.java Modified: camel/trunk/components/camel-spring-security/src/main/resources/schema/camel-spring-security.xsd URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/resources/schema/camel-spring-security.xsd?rev=933898&r1=933897&r2=933898&view=diff ============================================================================== --- camel/trunk/components/camel-spring-security/src/main/resources/schema/camel-spring-security.xsd (original) +++ camel/trunk/components/camel-spring-security/src/main/resources/schema/camel-spring-security.xsd Wed Apr 14 09:47:57 2010 @@ -35,6 +35,7 @@ <xsd:attribute name="access" type="xsd:string" /> <xsd:attribute name="authenticationManager" type="xsd:string" /> <xsd:attribute name="accessDecisionManager" type="xsd:string" /> + <xsd:attribute name="useThreadSecurityContext" type="xsd:boolean" default="true"/> <xsd:attribute name="alwaysReauthenticate" type="xsd:boolean" default="false"/> </xsd:complexType> </xsd:element> 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=933898&r1=933897&r2=933898&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 Wed Apr 14 09:47:57 2010 @@ -29,6 +29,7 @@ import org.springframework.security.Auth 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; public class SpringSecurityAuthorizationPolicyTest extends CamelSpringTestSupport { @@ -54,9 +55,20 @@ public class SpringSecurityAuthorization } end.assertIsSatisfied(); } - - private void sendMessageWithAuthentication(String username, String password, String... roles) { - + + @Test + public void testGetAuthorizationTokenFromSecurityContextHolder() throws Exception { + MockEndpoint end = getMockEndpoint("mock:end"); + end.expectedBodiesReceived("hello world"); + Authentication authToken = createAuthenticationToken("jim", "jimspassword", "ROLE_USER", "ROLE_ADMIN"); + SecurityContextHolder.getContext().setAuthentication(authToken); + template.sendBody("direct:start", "hello world"); + end.assertIsSatisfied(); + SecurityContextHolder.getContext().setAuthentication(null); + + } + + private Authentication createAuthenticationToken(String username, String password, String... roles) { Authentication authToken; if (roles != null && roles.length > 0) { GrantedAuthority[] authorities = new GrantedAuthority[roles.length]; @@ -67,7 +79,13 @@ public class SpringSecurityAuthorization } else { authToken = new UsernamePasswordAuthenticationToken(username, password); } + return authToken; + } + + private void sendMessageWithAuthentication(String username, String password, String... roles) { + Authentication authToken = createAuthenticationToken(username, password, roles); + Subject subject = new Subject(); subject.getPrincipals().add(authToken);