We are trying to show a warning message for users who have passwords expiring soon, displaying a link to change their password but also allowing them to continue to the original service if they don't want to change their password just yet. It seems the flow is running into an infinite loop where in terms of state ids, the flow is looping createTicketGrantingTicket -> showAuthenticationWarningMessages -> inquireInterruptAction -> createTicketGrantingTicket -> showAuthenticationWarningMessages -> etc.
Below are the logs and also my best recreation of the webflow in xml.
I believe the issue lies in InterruptWebflowConfigurer#createTransitionStateForAuthenticationWarnings changing the state showAuthenticationWarningMessages defined in DefaultLoginWebflowConfigurer#createAuthenticationWarningMessagesView. By default the proceed transition should go to the state proceedFromAuthenticationWarningView but instead it gets overridden and goes to the state inquireInterruptAction causing an infinite loop since createTicketGrantingTicket will always return successWithWarnings because the warning messages are never cleared and inquireInterruptAction will always return no.
[36m2018-12-13 09:02:24,562 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@68650edd on = success, to = inquireInterruptAction]>[m
[36m2018-12-13 09:02:24,562 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'realSubmit'>[m
[36m2018-12-13 09:02:24,562 DEBUG [org.springframework.webflow.engine.ActionState] - <Entering state 'inquireInterruptAction' of flow 'login'>[m
[36m2018-12-13 09:02:24,562 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@6d1a5735 expression = inquireInterruptAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:24,562 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14; result = yes>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@6d1a5735 expression = inquireInterruptAction, resultExpression = [null]]; result = yes>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@621c9037 on = yes, to = interruptView]>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'inquireInterruptAction'>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.engine.ViewState] - <Entering state 'interruptView' of flow 'login'>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@22cf794f expression = prepareInterruptViewAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.PrepareInterruptViewAction@2d48a667>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.PrepareInterruptViewAction@2d48a667; result = null>[m
[36m2018-12-13 09:02:24,565 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@22cf794f expression = prepareInterruptViewAction, resultExpression = [null]]; result = null>[m
[36m2018-12-13 09:02:24,583 DEBUG [org.springframework.webflow.engine.ViewState] - <Rendering + [ServletMvcView@567f01f2 view = org.thymeleaf.spring4.view.ThymeleafView@550b8ca5]>[m
[36m2018-12-13 09:02:24,583 DEBUG [org.springframework.webflow.engine.ViewState] - < Flash scope = map[[empty]]>[m
[36m2018-12-13 09:02:24,583 DEBUG [org.springframework.webflow.engine.ViewState] - < Messages = [DefaultMessageContext@61a3c58f sourceMessages = map[[null] -> list[[empty]]]]>[m
[36m2018-12-13 09:02:24,617 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'interruptView' in flow 'login'>[m
[36m2018-12-13 09:02:24,617 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'interruptView' in flow 'login'>[m
[36m2018-12-13 09:02:24,617 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'interruptView' in flow 'login'>[m
[36m2018-12-13 09:02:29,187 DEBUG [org.springframework.webflow.engine.Flow] - <Restoring [FlowVariable@68e28902 name = 'credential', valueFactory = [BeanFactoryVariableValueFactory@17be19d1 type = UsernamePasswordCredential]]>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.engine.ViewState] - <Event 'proceed' returned from view [ServletMvcView@43932779 view = org.thymeleaf.spring4.view.ThymeleafView@550b8ca5]>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@3bfc6eac on = *, to = finalizeInterruptFlowAction]>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'interruptView'>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.engine.ActionState] - <Entering state 'finalizeInterruptFlowAction' of flow 'login'>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@3cfa7a84 expression = finalizeInterruptFlowAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:29,188 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.FinalizeInterruptFlowAction@7789d833>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.FinalizeInterruptFlowAction@7789d833; result = success>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@3cfa7a84 expression = finalizeInterruptFlowAction, resultExpression = [null]]; result = success>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@41542afa on = success, to = createTicketGrantingTicket]>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'finalizeInterruptFlowAction'>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.engine.ActionState] - <Entering state 'createTicketGrantingTicket' of flow 'login'>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@3c17118e expression = inquireInterruptAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction] - <Authentication event has already finalized interrupt. Skipping...>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14; result = no>[m
[36m2018-12-13 09:02:29,189 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@3c17118e expression = inquireInterruptAction, resultExpression = [null]]; result = no>[m
[36m2018-12-13 09:02:29,190 DEBUG [org.springframework.webflow.engine.ActionState] - <Action execution [1] resulted in no matching transition on event 'no': proceeding to the next action in the list>[m
[36m2018-12-13 09:02:29,190 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@6898b4c6 expression = createTicketGrantingTicketAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:29,190 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction@67149f9>[m
[36m2018-12-13 09:02:29,190 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Finalizing authentication transactions and issuing ticket-granting ticket>[m
[36m2018-12-13 09:02:29,197 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Finalizing authentication event...>[m
[36m2018-12-13 09:02:29,198 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Creating ticket-granting ticket, potentially based on [null]>[m
[36m2018-12-13 09:02:29,198 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Attempting to issue a new ticket-granting ticket...>[m
[32m2018-12-13 09:02:29,247 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: itwd_test2
WHAT: TGT-1-********************************************************ooUVozKsYq8mis079
ACTION: TICKET_GRANTING_TICKET_CREATED
APPLICATION: CAS5
WHEN: Thu Dec 13 09:02:29 EST 2018
CLIENT IP ADDRESS: 128.175.5.98
SERVER IP ADDRESS: 127.0.0.1
=============================================================
>[m
[32m2018-12-13 09:02:29,247 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - <Audit trail record BEGIN
=============================================================
WHO: itwd_test2
WHAT: TGT-1-********************************************************ooUVozKsYq8mis079
ACTION: TICKET_GRANTING_TICKET_CREATED
APPLICATION: CAS5
WHEN: Thu Dec 13 09:02:29 EST 2018
CLIENT IP ADDRESS: 128.175.5.98
SERVER IP ADDRESS: 127.0.0.1
=============================================================
>[m
[36m2018-12-13 09:02:29,247 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Calculating authentication warning messages...>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction@67149f9; result = successWithWarnings>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@6898b4c6 expression = createTicketGrantingTicketAction, resultExpression = [null]]; result = successWithWarnings>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@61f148a9 on = successWithWarnings, to = showAuthenticationWarningMessages]>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'createTicketGrantingTicket'>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.engine.ViewState] - <Entering state 'showAuthenticationWarningMessages' of flow 'login'>[m
[36m2018-12-13 09:02:29,250 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [SetAction@15edd043 name = requestScope.messages, value = messageContext.allMessages]>[m
[36m2018-12-13 09:02:29,251 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [SetAction@15edd043 name = requestScope.messages, value = messageContext.allMessages]; result = success>[m
[36m2018-12-13 09:02:29,261 DEBUG [org.springframework.webflow.engine.ViewState] - <Rendering + [ServletMvcView@7d7558cb view = org.thymeleaf.spring4.view.ThymeleafView@141288cf]>[m
[36m2018-12-13 09:02:29,261 DEBUG [org.springframework.webflow.engine.ViewState] - < Flash scope = map[[empty]]>[m
[36m2018-12-13 09:02:29,261 DEBUG [org.springframework.webflow.engine.ViewState] - < Messages = [DefaultMessageContext@7fa89bda sourceMessages = map[[null] -> list[[Message@ee124ad source = [null], severity = WARNING, text = '<div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign"></span> <strong>Your password will expire soon.</strong></div><div class="list-group"><div class="list-group-item"><strong>Students, faculty, and staff:</strong> Log in to <strong>My UD Settings</strong> to change your password.<br><a href="
https://www.udel.edu/myudsettings" class="btn btn-default itwd-marginT-10px">Go to My UD Settings</a></div><div class="list-group-item"><strong>Alumni:</strong> Log in to <strong>Alumni Settings</strong> to change your password.<br><a href="
https://metal1.nss.udel.edu/alumni/index.php" class="btn btn-default itwd-marginT-10px">Go to Alumni Settings</a></div><div class="list-group-item"><p>You can proceed without changing your password by selecting Continue below.</p></div></div>']]]]>[m
[36m2018-12-13 09:02:29,289 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
[36m2018-12-13 09:02:29,289 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
[36m2018-12-13 09:02:29,289 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
[36m2018-12-13 09:02:33,913 DEBUG [org.springframework.webflow.engine.Flow] - <Restoring [FlowVariable@68e28902 name = 'credential', valueFactory = [BeanFactoryVariableValueFactory@17be19d1 type = UsernamePasswordCredential]]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.ViewState] - <Event 'proceed' returned from view [ServletMvcView@67a125b4 view = org.thymeleaf.spring4.view.ThymeleafView@141288cf]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@c2e644e on = proceed, to = inquireInterruptAction]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'showAuthenticationWarningMessages'>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.ActionState] - <Entering state 'inquireInterruptAction' of flow 'login'>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@6d1a5735 expression = inquireInterruptAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction] - <Authentication event has already finalized interrupt. Skipping...>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14; result = no>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@6d1a5735 expression = inquireInterruptAction, resultExpression = [null]]; result = no>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@5839b404 on = no, to = createTicketGrantingTicket]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'inquireInterruptAction'>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.engine.ActionState] - <Entering state 'createTicketGrantingTicket' of flow 'login'>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@3c17118e expression = inquireInterruptAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14>[m
[36m2018-12-13 09:02:33,914 DEBUG [org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction] - <Authentication event has already finalized interrupt. Skipping...>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.interrupt.webflow.actions.InquireInterruptAction@7a1b8c14; result = no>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@3c17118e expression = inquireInterruptAction, resultExpression = [null]]; result = no>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.springframework.webflow.engine.ActionState] - <Action execution [1] resulted in no matching transition on event 'no': proceeding to the next action in the list>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [EvaluateAction@6898b4c6 expression = createTicketGrantingTicketAction, resultExpression = [null]]>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction@67149f9>[m
[36m2018-12-13 09:02:33,915 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Finalizing authentication transactions and issuing ticket-granting ticket>[m
[36m2018-12-13 09:02:33,916 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Finalizing authentication event...>[m
[36m2018-12-13 09:02:33,916 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Creating ticket-granting ticket, potentially based on [TGT-1-********************************************************ooUVozKsYq8mis079]>[m
[36m2018-12-13 09:02:33,916 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Located ticket-granting ticket in the context. Retrieving associated authentication>[m
[36m2018-12-13 09:02:33,923 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Resulting authentication matches the authentication from context>[m
[36m2018-12-13 09:02:33,924 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Updating the existing ticket-granting ticket [TGT-1-********************************************************ooUVozKsYq8mis079]...>[m
[36m2018-12-13 09:02:33,927 DEBUG [org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction] - <Calculating authentication warning messages...>[m
[36m2018-12-13 09:02:33,927 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing org.apereo.cas.web.flow.login.CreateTicketGrantingTicketAction@67149f9; result = successWithWarnings>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [EvaluateAction@6898b4c6 expression = createTicketGrantingTicketAction, resultExpression = [null]]; result = successWithWarnings>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.engine.Transition] - <Executing [Transition@61f148a9 on = successWithWarnings, to = showAuthenticationWarningMessages]>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.engine.Transition] - <Exiting state 'createTicketGrantingTicket'>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.engine.ViewState] - <Entering state 'showAuthenticationWarningMessages' of flow 'login'>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Executing [SetAction@15edd043 name = requestScope.messages, value = messageContext.allMessages]>[m
[36m2018-12-13 09:02:33,928 DEBUG [org.springframework.webflow.execution.ActionExecutor] - <Finished executing [SetAction@15edd043 name = requestScope.messages, value = messageContext.allMessages]; result = success>[m
[36m2018-12-13 09:02:33,932 DEBUG [org.springframework.webflow.engine.ViewState] - <Rendering + [ServletMvcView@6b607481 view = org.thymeleaf.spring4.view.ThymeleafView@141288cf]>[m
[36m2018-12-13 09:02:33,932 DEBUG [org.springframework.webflow.engine.ViewState] - < Flash scope = map[[empty]]>[m
[36m2018-12-13 09:02:33,932 DEBUG [org.springframework.webflow.engine.ViewState] - < Messages = [DefaultMessageContext@4a081d06 sourceMessages = map[[null] -> list[[Message@64088731 source = [null], severity = WARNING, text = '<div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign"></span> <strong>Your password will expire soon.</strong></div><div class="list-group"><div class="list-group-item"><strong>Students, faculty, and staff:</strong> Log in to <strong>My UD Settings</strong> to change your password.<br><a href="
https://www.udel.edu/myudsettings" class="btn btn-default itwd-marginT-10px">Go to My UD Settings</a></div><div class="list-group-item"><strong>Alumni:</strong> Log in to <strong>Alumni Settings</strong> to change your password.<br><a href="
https://metal1.nss.udel.edu/alumni/index.php" class="btn btn-default itwd-marginT-10px">Go to Alumni Settings</a></div><div class="list-group-item"><p>You can proceed without changing your password by selecting Continue below.</p></div></div>']]]]>[m
[36m2018-12-13 09:02:33,947 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
[36m2018-12-13 09:02:33,947 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
[36m2018-12-13 09:02:33,947 DEBUG [org.springframework.webflow.engine.Transition] - <Completed transition execution. As a result, the new state is 'showAuthenticationWarningMessages' in flow 'login'>[m
<action-state id="realSubmit">
...
<transition on="success" to="inquireInterruptAction"/>
</action-state>
<action-state id="inquireInterruptAction">
<evaluate expression="inquireInterruptAction"/>
<transition on="yes" to="interruptView"/>
<transition on="no" to="createTicketGrantingTicket"/>
</action-state>
<view-state id="interruptView">
<on-entry>
<evaluate expression="prepareInterruptViewAction"/>
</on-entry>
<transition on="*" to="finalizeInterruptFlowAction"/>
</view-state>
<action-state id="finalizeInterruptFlowAction">
<evaluate expression="finalizeInterruptFlowAction"/>
<transition on="success" to="createTicketGrantingTicket"/>
</action-state>
<view-state id="showAuthenticationWarningMessages">
<transition on="proceed" to="inquireInterruptAction"/>
<!-- <transition on="proceed" to="proceedFromAuthenticationWarningView"/> -->
</view-state>
<action-state id="proceedFromAuthenticationWarningView">
<evaluate expression="sendTicketGrantingTicket"/>
<transition on="*" to="serviceCheck"/>
</action-state>
<!-- calculateAuthenticationWarningMessages always greater than 0 therefore always returns successWithWarnings -->
<action-state id="createTicketGrantingTicket">
<evaluate expression="inquireInterruptAction"/>
<evaluate expression="createTicketGrantingTicketAction"/>
<transition on="success" to="sendTicketGrantingTicketAction"/>
<transition on="successWithWarnings" to="showAuthenticationWarningMessages"/>
</action-state>
<action-state id="sendTicketGrantingTicket">
<evaluate expression="sendTicketGrantingTicketAction"/>
<transition on="success" to="serviceCheck"/>
</action-state>
<decision-state id="serviceCheck">
...
</decision-state>