<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 5, 2017 at 9:38 AM, Liam Hoekenga <span dir="ltr"><<a href="mailto:liamr@umich.edu" target="_blank">liamr@umich.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>We also accept "<a href="http://id.incommon.org/assurance/mfa" target="_blank">http://id.incommon.org/<wbr>assurance/mfa</a>" and "<a href="https://refeds.org/profile/mfa" target="_blank">https://refeds.org/profile/<wbr>mfa</a>" as contexts that trigger MFA.</div><div><br></div><div>This is ecmascript, but it's using the methods off of the java objects.  Any suggestions on doing an intersection between the list of principals returned by rpCtx.getRequestedPrincipals and the list of principal names that includes all of the principal names that should trigger MFA?</div></div></blockquote><div><br></div><div>Are you just trying to trigger a flow if one of the contexts is present?</div><br></div><div class="gmail_quote">IOW, you do Password, which should only get you Password or PPT, depending on your configuration.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Is your required logic amenable to this:</div><div class="gmail_quote"><br></div><div class="gmail_quote">mfaCtx = authCtx.getSubcontext("net.shibboleth.idp.authn.context.MultiFactorAuthenticationContext");<br></div><div class="gmail_quote">if (mfaCtx.isAcceptable()) { return null; }  // current principals suffice</div><div class="gmail_quote">else { return nextFlow; } // run second factor</div><div class="gmail_quote"><br></div><div class="gmail_quote">Greg</div></div></div>