[java-identity-provider COMMIT] in /trunk: idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFa...
noreply at shibboleth.net
noreply at shibboleth.net
Wed May 25 14:55:16 EDT 2016
Author: scantor
Date: Wed May 25 14:55:16 2016
New Revision: 8256
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8256&view=rev
Log:
IDP-962 - Login flow or framework for combining authentication factors
First mostly-working version of the MFA controller flow.
Modified:
trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java
trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java
trunk/idp-conf/src/main/resources/conf/authn/general-authn.xml
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/authn/mfa-authn-beans.xml
trunk/idp-conf/src/main/resources/system/flows/authn/mfa-authn-flow.xml
Modified: trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java?rev=8256&r1=8255&r2=8256&view=diff
==============================================================================
--- trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java (original)
+++ trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/PopulateMultiFactorAuthenticationContext.java Wed May 25 14:55:16 2016
@@ -136,6 +136,8 @@
mfaCtx.setAuthenticationFlowDescriptor(authenticationContext.getAttemptedFlow());
mfaCtx.setTransitionMap(transitionMap);
+ mfaCtx.setNextFlowId(null);
+ mfaCtx.getActiveResults().clear();
if (activeResultLookupStrategy != null) {
final Collection<AuthenticationResult> results = activeResultLookupStrategy.apply(profileRequestContext);
Modified: trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java?rev=8256&r1=8255&r2=8256&view=diff
==============================================================================
--- trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java (original)
+++ trunk/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/impl/TransitionMultiFactorAuthentication.java Wed May 25 14:55:16 2016
@@ -21,12 +21,15 @@
import javax.annotation.Nullable;
import net.shibboleth.idp.authn.AbstractAuthenticationAction;
+import net.shibboleth.idp.authn.AuthenticationFlowDescriptor;
import net.shibboleth.idp.authn.AuthenticationResult;
import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.MultiFactorAuthenticationTransition;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.context.MultiFactorAuthenticationContext;
import net.shibboleth.idp.authn.context.SubjectCanonicalizationContext;
+import net.shibboleth.idp.profile.context.navigate.RelyingPartyIdLookupFunction;
+import net.shibboleth.idp.profile.context.navigate.ResponderIdLookupFunction;
import net.shibboleth.idp.profile.context.navigate.WebFlowCurrentEventLookupFunction;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -72,9 +75,11 @@
*
* <p>If a flow is returned, it is populated into the {@link MultiFactorAutenticationContext}.
* The flow is checked for the "authn/" prefix, and a login flow is checked against the
- * active result map to determine if it can be reused, in which case
- * {@link AuthnEventIds#RESELECT_FLOW} is signaled to recurse the process. Otherwise
- * {@link EventIds#PROCEED_EVENT_ID}is signaled to run the flow.</p>
+ * active result map to determine if it can be reused, in which case the action recurses itself.
+ * Otherwise {@link EventIds#PROCEED_EVENT_ID}is signaled to run the flow.</p>
+ *
+ * <p>By default, login flow transitions are validated against the request's requirements
+ * in terms of passive, forced re-authn, and non-browser compatibility.</p>
*
* @pre <pre>ProfileRequestContext.getSubcontext(AuthenticationContext.class).getSubcontext(
* MultiFactorAuthenticationContext.class) != null</pre>
@@ -83,8 +88,9 @@
* @event {@link EventIds#INVALID_PROFILE_CTX}
* @event {@link AuthnEventIds#NO_PASSIVE}
* @event {@link AuthnEventIds#NO_POTENTIAL_FLOW}
- * @event {@link AuthnEventIds#RESELECT_FLOW}
* @event {@link AuthnEventIds#INVALID_CREDENTIALS}
+ * @event {@link AuthnEventIds#REQUEST_UNSUPPORTED}
+ * @event (any event signaled by another called flow)
*/
public class TransitionMultiFactorAuthentication extends AbstractAuthenticationAction {
@@ -106,6 +112,9 @@
/** Function used to obtain the responder ID. */
[... 314 lines stripped ...]
More information about the commits
mailing list