You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2010/07/22 04:04:10 UTC

svn commit: r966480 - in /camel/trunk/components/camel-spring-security/src: main/java/org/apache/camel/component/spring/security/ test/java/org/apache/camel/component/spring/security/

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");