IDP 3.4.4 consent and CAS RuntimeException
Tobias Galéus
tobias.galeus at gu.se
Thu May 23 04:36:06 EDT 2019
After upgrading to IDP 3.4.4 (from 3.3.3) we've run into problems with our
terms-of-use agreement and CAS login.
An error message is display to the user at logon and the following is logged
in idp-process.log:
2019-05-23 08:05:13,454 - ERROR [net.shibboleth.idp.profile.interceptor:-1]
- Uncaught runtime exception|x.y.z.c|
org.springframework.binding.expression.EvaluationException: An ELException
occurred getting the value for expression
'opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).isPassive()
and
opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.consent.context.ConsentContext)).getPreviousConsents().isEmpty()'
on context [class
org.springframework.webflow.engine.impl.RequestControlContextImpl]
at
org.springframework.binding.expression.spel.SpringELExpression.getValue(SpringELExpression.java:94)
Caused by: org.springframework.expression.spel.SpelEvaluationException:
EL1011E: Method call: Attempted to call method isPassive() on null context
object
at
org.springframework.expression.spel.ast.MethodReference.throwIfNotNullSafe(MethodReference.java:149)
2019-05-23 08:05:13,454 - WARN
[org.opensaml.profile.action.impl.LogEvent:105] - A non-proceed event
occurred while processing the request: RuntimeException|x.y.z.c|
Our relying-party.xml is configured as follows:
<bean id="shibboleth.DefaultRelyingParty" parent="RelyingParty">
<property name="profileConfigurations">
<list>
<bean parent="Shibboleth.SSO" />
<ref bean="SAML1.AttributeQuery" />
<ref bean="SAML1.ArtifactResolution" />
<bean parent="SAML2.SSO" p:postAuthenticationFlows="#{
{'terms-of-use'} }" />
<ref bean="SAML2.ECP" />
<ref bean="SAML2.Logout" />
<ref bean="SAML2.AttributeQuery" />
<ref bean="SAML2.ArtifactResolution" />
<bean parent="CAS.LoginConfiguration"
p:postAuthenticationFlows="#{ {'terms-of-use'} }" />
<ref bean="CAS.ProxyConfiguration" />
<ref bean="CAS.ValidateConfiguration" />
</list>
</property>
</bean>
The terms-of-use works fine when using SAML2.SSO. The error only occurs when
using CAS. I've temporarily removed 'p:postAuthenticationFlows="#{
{'terms-of-use'} }"' from Cas.LoginConfiguration for now.
How do I troubleshoot this?
Some of our configuration if that is of any help:
consent-intercept-config.xml:
<bean id="shibboleth.consent.terms-of-use.Key"
class="com.google.common.base.Functions" factory-method="constant">
<constructor-arg value="gu-tou"/>
</bean>
idp.properties:
idp.consent.StorageService = shibboleth.JPAStorageService
idp.consent.maxStoredRecords = -1
idp.consent.storageRecordLifetime = P6M
mysql:
mysql> select * from StorageRecords where id like 'myusername%';
+------------------------+---------------------+---------------+-------------------------+---------+
| context | id | expires | value
| version |
+------------------------+---------------------+---------------+-------------------------+---------+
| intercept/terms-of-use | myusername:gu-tou | 1574323228652 |
[{"id":"gu-tou-1"}] | 1 |
| intercept/terms-of-use | myusername:_key_idx | NULL |
["myusername:gu-tou"] | 1 |
+------------------------+---------------------+---------------+-------------------------+---------+
2 rows in set (0.18 sec)
Best regards,
Tobias
--
Sent from: http://shibboleth.1660669.n2.nabble.com/Shibboleth-Users-f1660767.html
More information about the users
mailing list