[java-identity-provider COMMIT] /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAu...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Aug 16 20:49:27 EDT 2016
Author: scantor
Date: Tue Aug 16 20:49:26 2016
New Revision: 8326
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8326&view=rev
Log:
IDP-962 - Login flow or framework for combining authentication factors
Revert a change made early in the design process, which breaks the
authenticationFlows profile config setting by cross-contaminating
results between SPs. The MFA flow manages its own active results now,
so the reason for this change was overtaken by the design.
Modified:
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java?rev=8326&r1=8325&r2=8326&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/ExtractActiveAuthenticationResults.java Tue Aug 16 20:49:26 2016
@@ -44,8 +44,10 @@
* {@link AuthenticationResult} objects found in a {@link SessionContext} that is a direct
* child of the {@link ProfileRequestContext}.
*
- * <p>The active results must correspond to an available {@link AuthenticationFlowDescriptor},
- * but the flow need not be explicitly "runnable" (i.e. in the set of potential flows).</p>
+ * <p>Only results from flows in the "potentialFlows" collection in the {@link AuthenticationContext}
+ * are extracted, which prevents cross-contamination between SPs that have differing rules established
+ * for which flows are to be active, because the potentialFlows collection is filtered by that
+ * criterion.</p>
*
* <p>If {@link AuthenticationContext#getHintedName() is null, then it is populated with the
* principal name from the session.</p>
@@ -111,7 +113,7 @@
final List<AuthenticationResult> actives = new ArrayList<>();
for (final AuthenticationResult result : session.getAuthenticationResults()) {
final AuthenticationFlowDescriptor descriptor =
- authenticationContext.getAvailableFlows().get(result.getAuthenticationFlowId());
+ authenticationContext.getPotentialFlows().get(result.getAuthenticationFlowId());
if (descriptor == null) {
log.debug("{} Authentication result {} has no corresponding flow descriptor, considering inactive",
getLogPrefix(), result.getAuthenticationFlowId());
More information about the commits
mailing list