[java-identity-provider COMMIT] in /trunk/idp-attribute-filter-api/src: main/java/net/shibboleth/idp/attribute/filter...

noreply at shibboleth.net noreply at shibboleth.net
Mon Jun 3 09:37:41 EDT 2013


Author: rdw
Date: Mon Jun  3 09:37:41 2013
New Revision: 4508

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=4508&view=rev
Log:
IDP-283 Introduce tristated results from matchers to allow context lookups to fail.  For now this is done via a runtime exception.  To be revisited at the end of the project.  Also tests for same,

Added:
    trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/MatcherException.java   (with props)
Modified:
    trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java
    trunk/idp-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeFilteringEngineTest.java

Modified: trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java?rev=4508&r1=4507&r2=4508&view=diff
==============================================================================
--- trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java (original)
+++ trunk/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilter.java Mon Jun  3 09:37:41 2013
@@ -19,6 +19,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -63,6 +64,9 @@
     /** Filter policies used by this engine. */
     private final List<AttributeFilterPolicy> filterPolicies;
 
+    /** Log prefix. */
+    private String logPrefix;
+
     /**
      * Constructor.
      * 
@@ -118,43 +122,45 @@
      * @param filterContext context containing the attributes to be filtered and collecting the results of the filtering
      *            process
      * 
-     * @throws AttributeFilterException thrown if there is a problem retrieving or applying the attribute filter
-     *             policy
-     */
-    public void filterAttributes(@Nonnull final AttributeFilterContext filterContext)
-            throws AttributeFilterException {
+     * @throws AttributeFilterException thrown if there is a problem retrieving or applying the attribute filter policy
+     */
+    public void filterAttributes(@Nonnull final AttributeFilterContext filterContext) throws AttributeFilterException {
         ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
         ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
 
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
         Map<String, Attribute> prefilteredAttributes = filterContext.getPrefilteredAttributes();
 
-        log.debug("Attribute filter engine '{}': beginning process of filtering the following {} attributes: {}",
-                new Object[] {getId(), prefilteredAttributes.size(), prefilteredAttributes.keySet(),});
-
-        final List<AttributeFilterPolicy> policies = getFilterPolicies();
-        for (AttributeFilterPolicy policy : policies) {
-            if (!policy.isApplicable(filterContext)) {
-                log.debug("Attribute filtering engine '{}': filter policy '{}' is not applicable", getId(),
-                        policy.getId());
-                continue;
+        log.debug("{} beginning process of filtering the following {} attributes: {}", new Object[] {getLogPrefix(),
+                prefilteredAttributes.size(), prefilteredAttributes.keySet(),});
+
+        try {
+            final List<AttributeFilterPolicy> policies = getFilterPolicies();
+            for (AttributeFilterPolicy policy : policies) {
+                if (!policy.isApplicable(filterContext)) {
+                    log.debug("{} filter policy '{}' is not applicable", getLogPrefix(), policy.getId());
+                    continue;
+                }
+
+                policy.apply(filterContext);
             }
 
-            policy.apply(filterContext);
-        }
-
-        Attribute filteredAttribute;
-        for (String attributeId : filterContext.getPrefilteredAttributes().keySet()) {
-            final Collection filteredAttributeValues = getFilteredValues(attributeId, filterContext);
-            if (null != filteredAttributeValues && !filteredAttributeValues.isEmpty()) {
-                try {
-                    filteredAttribute = prefilteredAttributes.get(attributeId).clone();
-                } catch (CloneNotSupportedException e) {
-                    throw new AttributeFilterException(e);
+            Attribute filteredAttribute;
+            for (String attributeId : filterContext.getPrefilteredAttributes().keySet()) {
+                final Collection filteredAttributeValues = getFilteredValues(attributeId, filterContext);
+                if (null != filteredAttributeValues && !filteredAttributeValues.isEmpty()) {
+                    try {
+                        filteredAttribute = prefilteredAttributes.get(attributeId).clone();

[... 112 lines stripped ...]


More information about the commits mailing list