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/06/08 10:00:48 UTC

svn commit: r952562 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/ components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/ components/camel-spring-security/src/main/java/org/apache/camel/component/sprin...

Author: ningjiang
Date: Tue Jun  8 08:00:47 2010
New Revision: 952562

URL: http://svn.apache.org/viewvc?rev=952562&view=rev
Log:
CAMEL-2796 provides policy referece id in CamelAuthorizationException

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.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/main/java/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicyParser.java
    camel/trunk/examples/camel-example-spring-security/src/main/resources/org/apache/camel/example/spring/security/camel-context.xml

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java?rev=952562&r1=952561&r2=952562&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/CamelAuthorizationException.java Tue Jun  8 08:00:47 2010
@@ -18,13 +18,20 @@
 package org.apache.camel;
 
 public class CamelAuthorizationException extends CamelExchangeException {
-
+    private final String policyId;
+    
     public CamelAuthorizationException(String message, Exchange exchange) {
         super(message, exchange);
+        policyId = exchange.getIn().getHeader(Exchange.AUTHENTICATION_FAILURE_POLICY_ID, String.class);        
     }
     
     public CamelAuthorizationException(String message, Exchange exchange, Throwable cause) {
         super(message, exchange, cause);
+        policyId = exchange.getIn().getHeader(Exchange.AUTHENTICATION_FAILURE_POLICY_ID, String.class);
+    }
+    
+    public String getPolicyId() {
+        return policyId;
     }
 
 }

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=952562&r1=952561&r2=952562&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 Tue Jun  8 08:00:47 2010
@@ -22,6 +22,7 @@ import org.apache.camel.CamelAuthorizati
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.model.IdentifiedType;
 import org.apache.camel.processor.DelegateProcessor;
 import org.apache.camel.spi.AuthorizationPolicy;
 import org.apache.camel.spi.RouteContext;
@@ -42,7 +43,7 @@ import org.springframework.security.even
 import org.springframework.security.event.authorization.AuthorizedEvent;
 import org.springframework.util.Assert;
 
-public class SpringSecurityAuthorizationPolicy implements AuthorizationPolicy, InitializingBean, ApplicationEventPublisherAware {
+public class SpringSecurityAuthorizationPolicy extends IdentifiedType implements AuthorizationPolicy, InitializingBean, ApplicationEventPublisherAware {
     private static final transient Log LOG = LogFactory.getLog(SpringSecurityAuthorizationPolicy.class);
     private AccessDecisionManager accessDecisionManager;
     private AuthenticationManager authenticationManager;
@@ -76,6 +77,7 @@ public class SpringSecurityAuthorization
             try {
                 this.accessDecisionManager.decide(authenticated, exchange, attributes);
             } catch (AccessDeniedException accessDeniedException) {
+                exchange.getIn().setHeader(Exchange.AUTHENTICATION_FAILURE_POLICY_ID, getId());
                 AuthorizationFailureEvent event = new AuthorizationFailureEvent(exchange, attributes, authenticated,
                         accessDeniedException);
                 publishEvent(event);
@@ -123,7 +125,6 @@ public class SpringSecurityAuthorization
         Assert.notNull(this.authenticationManager, "An AuthenticationManager is required");
         Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required");
         Assert.notNull(this.accessPolicy, "The accessPolicy is required");
-        
     }
     
     private Authentication authenticateIfRequired(Authentication authentication) {

Modified: camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicyParser.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicyParser.java?rev=952562&r1=952561&r2=952562&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicyParser.java (original)
+++ camel/trunk/components/camel-spring-security/src/main/java/org/apache/camel/component/spring/security/config/SpringSecurityAuthorizationPolicyParser.java Tue Jun  8 08:00:47 2010
@@ -47,7 +47,10 @@ public class SpringSecurityAuthorization
         setReferenceIfAttributeDefine(builder, element, "authenticationManager");
         if (ObjectHelper.isNotEmpty(element.getAttribute("authenticationAdapter"))) {
             builder.addPropertyReference("authenticationAdapter", element.getAttribute("authenticationAdapter"));
-        }        
+        }
+        if (ObjectHelper.isNotEmpty(element.getAttribute("id"))) {
+            builder.addPropertyValue("id", element.getAttribute("id"));
+        }
         BeanDefinitionBuilder accessPolicyBuilder = BeanDefinitionBuilder.genericBeanDefinition(
             SpringSecurityAccessPolicy.class.getCanonicalName());
         accessPolicyBuilder.addConstructorArgValue(element.getAttribute("access"));

Modified: camel/trunk/examples/camel-example-spring-security/src/main/resources/org/apache/camel/example/spring/security/camel-context.xml
URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-spring-security/src/main/resources/org/apache/camel/example/spring/security/camel-context.xml?rev=952562&r1=952561&r2=952562&view=diff
==============================================================================
--- camel/trunk/examples/camel-example-spring-security/src/main/resources/org/apache/camel/example/spring/security/camel-context.xml (original)
+++ camel/trunk/examples/camel-example-spring-security/src/main/resources/org/apache/camel/example/spring/security/camel-context.xml Tue Jun  8 08:00:47 2010
@@ -58,7 +58,7 @@
                 <constant>true</constant>
             </handled>
             <transform>
-                <constant>Access Denied!</constant>
+                <simple>Access Denied with the Policy of ${exception.policyId} !</simple>
             </transform>
         </onException>