intercept flow leads to java.lang.StackOverflowError

Scott Koranda skoranda at gmail.com
Fri Jan 15 09:11:55 EST 2016


Hi,

I am using IdP 3.2.1.

I have a simple intercept flow that I configured for a
particular relying party. It uses the

net.shibboleth.idp.profile.logic.SimpleAttributePredicate 

to check for a particular value of an attribute and if found
it should diplay a custom error page and the flow should stop
(no response to the SP).

The simple flow is

<decision-state id="MyTest">
    <if test="MyTest.apply(opensamlProfileRequestContext)" then="MyEvent" else="proceed" />
</decision-state>

<action-state id="MyEvent">
    <evaluate expression="'MyEvent'"/>
</action-state>

I then eddited errors.xml and added

<entry key="MyEvent" value="true" />

to shibboleth.LocalEventMap and 

<entry key="MyEvent" value="my-event" />

to shibboleth.EventViewMap

Is there anything else I need to do to "properly" end the SSO
flow at MyEvent and display my-event.vm?

I ask because when the attribute condition fires and I walk
into the intercept flow I wind up with a
java.lang.StackOverflowError. 

The last DEBUG entry in the log file is

DEBUG [net.shibboleth.idp.profile.logic.AbstractAttributePredicate:97] - Context satisfied requirements

and that line is right after 

net.shibboleth.idp.profile.logic.SimpleAttributePredicate:130

logging that it found the matching attribute value.

The stack trace has this recursion in it:

at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
at org.springframework.webflow.engine.State.enter(State.java:194)
at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:552)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
at org.springframework.webflow.engine.State.enter(State.java:194)
at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:552)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
at org.springframework.webflow.engine.State.enter(State.java:194)
at org.springframework.webflow.engine.Transition.execute(Transition.java:228)
<snip>

Thanks,

Scott K


More information about the dev mailing list