<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">I have used the existing expired-password-flow to implement a user form to reset the password during this flow.  My expired-password-flow.xml is the following:<o:p></o:p></p>
<p class="MsoNormal"><i><flow xmlns="http://www.springframework.org/schema/webflow"<o:p></o:p></i></p>
<p class="MsoNormal"><i>      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<o:p></o:p></i></p>
<p class="MsoNormal"><i>      xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"><o:p></o:p></i></p>
<p class="MsoNormal"><i><o:p> </o:p></i></p>
<p class="MsoNormal"><i>    <!-- Rudimentary impediment to direct execution of subflow. --><o:p></o:p></i></p>
<p class="MsoNormal"><i>    <input name="calledAsSubflow" type="boolean" required="true" /><o:p></o:p></i></p>
<p class="MsoNormal"><i><o:p> </o:p></i></p>
<p class="MsoNormal"><i>    <view-state id="ExpiredPassword" view="expiredPassword"><o:p></o:p></i></p>
<p class="MsoNormal"><i>                <on-render><o:p></o:p></i></p>
<p class="MsoNormal"><i>            <evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext))" result="viewScope.authenticationContext" /><o:p></o:p></i></p>
<p class="MsoNormal"><i>                <evaluate expression="expiredPasswordFormAction.getFormObjectName()" result="viewScope.formName"/><o:p></o:p></i></p>
<p class="MsoNormal"><i>                <evaluate expression="expiredPasswordFormAction.setupForm"/><o:p></o:p></i></p>
<p class="MsoNormal"><i>        </on-render><o:p></o:p></i></p>
<p class="MsoNormal"><i>        <transition on="submit" to="proceed"><o:p></o:p></i></p>
<p class="MsoNormal"><i>                <evaluate expression="expiredPasswordFormAction.bindAndValidate"/><o:p></o:p></i></p>
<p class="MsoNormal"><i>        </transition><o:p></o:p></i></p>
<p class="MsoNormal"><i>    </view-state><o:p></o:p></i></p>
<p class="MsoNormal"><i>    <o:p></o:p></i></p>
<p class="MsoNormal"><i>    <end-state id="proceed" /><o:p></o:p></i></p>
<p class="MsoNormal"><i><o:p> </o:p></i></p>
<p class="MsoNormal"><i></flow><o:p></o:p></i></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">After submitting the form, the bindAndValidate (which includes writing the new password to ldap) concludes without exception, and then I get the following error:<o:p></o:p></p>
<p class="MsoNormal"><i>java.lang.IllegalArgumentException: Cannot find state with id 'InvalidSubjectCanonicalizationContext' in flow 'authn' -- Known state ids are 'array<String>['AuthenticationSetup', 'TestForSession', 'SessionExists', 'FilterFlows', 'SelectAuthenticationFlow',
 'CallAuthenticationFlow' …<o:p></o:p></i></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The first instance of InvalidSubjectCanonicalizationContext in the idp-process.log is:<o:p></o:p></p>
<p class="MsoNormal"><i>2015-08-13 13:26:08,640 - DEBUG [org.springframework.webflow.execution.ActionExecutor:53] - Finished executing net.shibboleth.idp.authn.impl.PopulateSubjectCanonicalizationContext@4b69ddcb; result = InvalidSubjectCanonicalizationContext<o:p></o:p></i></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am really not sure what is goofed up here.  Any help is much appreciated.  Thanks.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Josh O’Dowd<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:8.0pt;font-family:"Arial","sans-serif"">Software Systems Analyst / Developer<o:p></o:p></span></b></p>
<p class="MsoNormal"><i><span style="font-size:9.0pt;font-family:"Arial","sans-serif"">University of Montana, IT Central<o:p></o:p></span></i></p>
<p class="MsoNormal"><b><span style="font-size:8.0pt;font-family:"Arial","sans-serif"">(406)243-6283<o:p></o:p></span></b></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>