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

noreply at shibboleth.net noreply at shibboleth.net
Thu Jul 7 13:02:25 EDT 2016


Author: scantor
Date: Thu Jul  7 13:02:24 2016
New Revision: 8285

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8285&view=rev
Log:
IDP-962 - Login flow or framework for combining authentication factors (e.g. Duo)

https://issues.shibboleth.net/jira/browse/IDP-962

Replace attribute lookup flow with a simpler approach.

Modified:
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeResolutionContext.java
    trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/MultiFactorAuthenticationContext.java
    trunk/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml
    trunk/idp-conf/src/main/resources/system/conf/webflow-config.xml
    trunk/idp-conf/src/main/resources/system/flows/util/

Modified: trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeResolutionContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeResolutionContext.java?rev=8285&r1=8284&r2=8285&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeResolutionContext.java	(original)
+++ trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeResolutionContext.java	Thu Jul  7 13:02:24 2016
@@ -28,14 +28,20 @@
 import javax.annotation.concurrent.NotThreadSafe;
 
 import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.resolver.AttributeResolver;
+import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.utilities.java.support.annotation.constraint.Live;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
 import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Predicates;
 import com.google.common.collect.Collections2;
@@ -214,5 +220,30 @@
             }
         }
     }
-    
+
+    /**
+     * Helper method to invoke an AttributeResolver service using this context.
+     * 
+     * @param attributeResolverService the service to invoke
+     */
+    public void resolveAttributes(@Nonnull final ReloadableService<AttributeResolver> attributeResolverService) {
+
+        final Logger log = LoggerFactory.getLogger(AttributeResolutionContext.class);
+        ServiceableComponent<AttributeResolver> component = null;
+        try {
+            component = attributeResolverService.getServiceableComponent();
+            if (null == component) {
+                log.error("Error resolving attributes: Invalid Attribute resolver configuration");
+            } else {
+                final AttributeResolver attributeResolver = component.getComponent();
+                attributeResolver.resolveAttributes(this);
+            }
+        } catch (final ResolutionException e) {
+            log.error("Error resolving attributes", e);
+        } finally {
+            if (null != component) {
+                component.unpinComponent();
+            }
+        }
+    }
 }

Modified: trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/MultiFactorAuthenticationContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/MultiFactorAuthenticationContext.java?rev=8285&r1=8284&r2=8285&view=diff
==============================================================================
--- trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/MultiFactorAuthenticationContext.java	(original)
+++ trunk/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/MultiFactorAuthenticationContext.java	Thu Jul  7 13:02:24 2016
@@ -181,7 +181,7 @@
      * 
      * @return true iff at least one of the active results satisfies the request
      */
-    public boolean satisfiesRequester() {
+    public boolean isAcceptable() {
         final AuthenticationContext authnContext = (AuthenticationContext) getParent();
         if (authnContext != null) {
             for (final AuthenticationResult result : activeResults.values()) {

Modified: trunk/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/conf/authn/mfa-authn-config.xml?rev=8285&r1=8284&r2=8285&view=diff

[... 120 lines stripped ...]


More information about the commits mailing list