Whenever the warning intercepts fire, the follow error is sent to the screen:
A software error was encountered that prevents normal operation:
org.springframework.binding.expression.EvaluationException: An ELException occurred getting the value for expression 'WarningIterator.hasNext()' on context [class org.springframework.webflow.engine.impl.RequestControlContextImpl]
Please report this problem to your Help Desk or administrative staff. It has also been logged for an administrator to review.
I will add the full stack trace seperately, but the “caused by” is:
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public final boolean java.util.LinkedHashMap$LinkedHashIterator.hasNext() accessible: module java.base does not "opens java.util" to unnamed module @50b46e24
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:573)
at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:128)
... 288 common frames omitted
If I downgrade to Amazon Corretto 11 for Linux, the warning intercept appears to fire correctly (though there is a spring warning).
I think I am hitting an issue with Amazon Corretto 17 for Linux and my (sandbox) IDP’s WarningIntercept configuration.
To try and eliminate any code errors on my part, I am testing with the expiring password flow:
<util:map id="shibboleth.warning.ConditionMap"> <entry key="expiring-password"> <bean parent="shibboleth.Pair"> <constructor-arg index="0"> <bean id="shibboleth.expiring-password.Condition" class="net.shibboleth.idp.profile.logic.DateAttributePredicate" c:attribute="MainePersonPasswordExpires" c:formatString="yyyyMMddHHmmssX" p:resultIfMissing="false" p:offset="-P190D" /> </constructor-arg> <constructor-arg index="1"> <bean class="java.time.Duration" factory-method="parse" c:_0="PT8H" /> </constructor-arg> </bean> </entry> </util:map>
Whenever the warning intercepts fire, the follow error is sent to the screen:
I will add the full stack trace seperately, but the “caused by” is:
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make public final boolean java.util.LinkedHashMap$LinkedHashIterator.hasNext() accessible: module java.base does not "opens java.util" to unnamed module @50b46e24
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
at org.springframework.util.ReflectionUtils.makeAccessible(ReflectionUtils.java:573)
at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:128)
... 288 common frames omitted
If I downgrade to Amazon Corretto 11 for Linux, the warning intercept appears to fire correctly (though there is a spring warning).