You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ow...@apache.org on 2013/05/24 21:24:49 UTC

svn commit: r1486180 - /cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java

Author: owulff
Date: Fri May 24 19:24:49 2013
New Revision: 1486180

URL: http://svn.apache.org/r1486180
Log:
Allow continue processing ClaimsHandler even exception occured

Modified:
    cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java

Modified: cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java
URL: http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java?rev=1486180&r1=1486179&r2=1486180&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java (original)
+++ cxf/trunk/services/sts/sts-core/src/main/java/org/apache/cxf/sts/claims/ClaimsManager.java Fri May 24 19:24:49 2013
@@ -47,6 +47,15 @@ public class ClaimsManager {
     private List<ClaimsParser> claimParsers;
     private List<ClaimsHandler> claimHandlers;
     private List<URI> supportedClaimTypes = new ArrayList<URI>();
+    private boolean stopProcessingOnException = true;
+
+    public boolean isStopProcessingOnException() {
+        return stopProcessingOnException;
+    }
+
+    public void setStopProcessingOnException(boolean stopProcessingOnException) {
+        this.stopProcessingOnException = stopProcessingOnException;
+    }
 
     public List<URI> getSupportedClaimTypes() {
         return supportedClaimTypes;
@@ -127,7 +136,18 @@ public class ClaimsManager {
                     if (supportedClaims.isEmpty()) {
                         continue;
                     }
-                    ClaimCollection claimCollection = handler.retrieveClaimValues(supportedClaims, parameters);
+                    
+                    ClaimCollection claimCollection = null;
+                    try {
+                        claimCollection = handler.retrieveClaimValues(claims, parameters);
+                    } catch (Exception ex) {
+                        LOG.log(Level.INFO, "Failed retrieving claims from ClaimsHandler "
+                                + handler.getClass().getName(), ex);
+                        if (this.isStopProcessingOnException()) {
+                            throw ex;
+                        }
+                    }
+                    
                     if (claimCollection != null && claimCollection.size() != 0) {
                         returnCollection.addAll(claimCollection);
                     }