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


Reply via email to