[java-identity-provider] branch master updated: IDP-1487 - Add shorthand method for running AttributeFilter service

Scott Cantor cantor.2 at osu.edu
Fri Aug 30 12:37:57 EDT 2019


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=306bd0f2f4df7a0e0eabf3134282a99f3db0a7f4

The following commit(s) were added to refs/heads/master by this push:
       new  306bd0f   IDP-1487 - Add shorthand method for running AttributeFilter service
306bd0f is described below

commit 306bd0f2f4df7a0e0eabf3134282a99f3db0a7f4
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Aug 30 12:37:54 2019 -0400

    IDP-1487 - Add shorthand method for running AttributeFilter service
    
    https://issues.shibboleth.net/jira/browse/IDP-1487
---
 .../filter/context/AttributeFilterContext.java     | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
index 91fd309..ee3b4ff 100644
--- a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
+++ b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/context/AttributeFilterContext.java
@@ -28,15 +28,21 @@ import javax.annotation.Nullable;
 import javax.annotation.concurrent.NotThreadSafe;
 
 import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.filter.AttributeFilter;
+import net.shibboleth.idp.attribute.filter.AttributeFilterException;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
 import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.service.ReloadableService;
+import net.shibboleth.utilities.java.support.service.ServiceableComponent;
 
 import org.opensaml.messaging.context.BaseContext;
 import org.opensaml.profile.context.ProxiedRequesterContext;
 import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
 import org.opensaml.saml.metadata.resolver.MetadataResolver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Predicates;
 
@@ -433,4 +439,31 @@ public final class AttributeFilterContext extends BaseContext {
         return proxiedRequesterContext;
     }
 
+    /**
+     * Helper method to invoke an AttributeFilter service using this context.
+     * 
+     * @param attributeFilterService the service to invoke
+     * 
+     * @since 4.0.0
+     */
+    public void filterAttributes(@Nonnull final ReloadableService<AttributeFilter> attributeFilterService) {
+
+        final Logger log = LoggerFactory.getLogger(AttributeFilterContext.class);
+        ServiceableComponent<AttributeFilter> component = null;
+        try {
+            component = attributeFilterService.getServiceableComponent();
+            if (null == component) {
+                log.error("Error filtering attributes: Invalid Attribute filter configuration");
+            } else {
+                component.getComponent().filterAttributes(this);
+            }
+        } catch (final AttributeFilterException e) {
+            log.error("Error filtering attributes", e);
+        } finally {
+            if (null != component) {
+                component.unpinComponent();
+            }
+        }
+    }
+
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list