Author: ningjiang Date: Thu Jul 22 02:04:09 2010 New Revision: 966480 URL: http://svn.apache.org/viewvc?rev=966480&view=rev Log: CAMEL-2796 camel-spring-security: provide reference to the policy when authorization fails by applying patch with thanks to Paul
Modified: 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 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=966480&r1=966479&r2=966480&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 Thu Jul 22 02:04:09 2010 @@ -90,6 +90,7 @@ public class SpringSecurityAuthorization publishEvent(new AuthorizedEvent(exchange, attributes, authenticated)); } catch (RuntimeException exception) { + exchange.getIn().setHeader(Exchange.AUTHENTICATION_FAILURE_POLICY_ID, getId()); 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=966480&r1=966479&r2=966480&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 Thu Jul 22 02:04:09 2010 @@ -60,6 +60,21 @@ public class SpringSecurityAuthorization } @Test + public void testAuthenticationFailed() throws Exception { + MockEndpoint end = getMockEndpoint("mock:end"); + end.expectedMessageCount(0); + try { + sendMessageWithAuthentication("bob", "jimspassword"); + fail("we should get the access deny exception here"); + } catch (Exception exception) { + // the exception should be caused by CamelAuthorizationException + assertTrue("Expect CamelAuthorizationException here", exception.getCause() instanceof CamelAuthorizationException); + assertEquals("admin", ((CamelAuthorizationException) exception.getCause()).getPolicyId()); + } + end.assertIsSatisfied(); + } + + @Test public void testGetAuthorizationTokenFromSecurityContextHolder() throws Exception { MockEndpoint end = getMockEndpoint("mock:end"); end.expectedBodiesReceived("hello world");