Modifying Login Flows

Mr. Christopher Bland chris at fdu.edu
Wed Jan 30 20:39:13 EST 2019


Hi Scott,

Definitely getting closer.  After studying the password-authn-flow I made the following changes

conf/authn/password-authn-config.xml
        <entry key="FDUExpiredPassword">
            <list>
                <value>ERROR_PASSWORD_EXPIRED</value>
                <value>ERROR_PASSWORD_MUST_CHANGE</value>
                <value>PASSWORD_EXPIRED</value>
                <value>PASSWORD_MUST_CHANGE</value>
                <value>532</value>
                <value>773</value>
            </list>
        </entry>

flows/authn/conditions/conditions-flow.xml
    <action-state id="ValidateUsernamePassword">
<transition on="FDUExpiredPassword" to="FDUExpiredPasswordError" />
        <transition on="AccountWarning" to="CallExpiringPassword" />
        <transition on="ExpiringPassword" to="CallExpiringPassword" />
        <transition on="ExpiredPassword" to="CallExpiredPassword" />
        <transition on="AccountLocked" to="CallAccountLocked" />
        <transition to="DisplayUsernamePasswordPage" />
    </action-state>

conf/authn/authn-events-flow.xml
    <end-state id="FDUExpiredPasswordError" />

    <global-transitions>
        <transition on="FDUExpiredPasswordError" to="FDUExpiredPasswordError'" />
        <transition on="#{!'proceed'.equals(currentEvent.id<http://currentEvent.id>)}" to="InvalidEvent" />
    </global-transitions>

conf/errors.xml
    <util:map id="shibboleth.EventViewMap">
             <entry key="FDUExpiredPasswordError'" value="fduchangedpassword" />
    </util:map>

    <util:map id="shibboleth.LocalEventMap">
        <entry key="FDUExpiredPasswordError'" value="true" />
        ...
    </util:map>

Now I am seeing the following error

2019-01-30 20:17:14,981 - 132.238.11.244 - ERROR [net.shibboleth.idp.authn:-2] - Uncaught runtime exception
java.lang.IllegalArgumentException: Cannot find state with id 'FDUExpiredPasswordError'' in flow 'authn' -- Known state ids are 'array<String>['AuthenticationSetup', 'TestForSession', 'SessionExists', 'FilterFlows', 'SelectAuthenticationFlow', 'CallAuthenticationFlow', 'CheckSubjectCanonicalization', 'PopulateSubjectCanonicalizationContext', 'CallSubjectCanonicalization', 'DetectIdentitySwitch', 'HandleIdentitySwitch', 'FinalizeAuthentication', 'UpdateSessionWithAuthenticationResult', 'proceed', 'AccountError', 'AccountLocked', 'AuthenticationException', 'IdentitySwitch', 'InputOutputError', 'InvalidCredentials', 'InvalidEvent', 'InvalidProfileContext', 'InvalidSubjectContext', 'InvalidSubjectCanonicalizationContext', 'NoCredentials', 'NoPassive', 'NoPotentialFlow', 'RequestUnsupported', 'ReselectFlow', 'RestartAuthentication', 'RuntimeException', 'SubjectCanonicalizationError', 'LogRuntimeException', 'FDUExpiredPasswordError']'
at org.springframework.webflow.engine.Flow.getStateInstance(Flow.java:343)

This doesn’t make sense because the state id it’s looking for is in the list of known state id’s

-Chris

On Jan 29, 2019, at 9:37 PM, Cantor, Scott <cantor.2 at osu.edu<mailto:cantor.2 at osu.edu>> wrote:

I don't recall if the log category is in the default file, but FWIW, org.springframework.webflow is the root of all the packages to log. It's very verbose but it will track exactly how it moves between each state and event, so something should come clear when it tries to make the transition it's supposed to be making.

-- Scott


--
For Consortium Member technical support, see https://wiki.shibboleth.net/confluence/x/coFAAg
To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net<mailto:users-unsubscribe at shibboleth.net>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20190131/5989a570/attachment.html>


More information about the users mailing list