<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="text-align: left; direction: ltr; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<div>Greetings,</div>
<div><br>
</div>
<div>I've opted to do a clean install of Shib IdP v3.4.4 ( with jetty v9.4.18.v20190429 and Ubuntu's (18.04) openJDK v11.0.3 ) and manually copy/convert over the configs from the current Shib IdP v3.3.0 (previously upgraded from Shib IdP v2). However, I'm getting
 the following error regarding terms-of-use for a specific SP:</div>
<div><br>
</div>
<div style="margin-left: 3ch;">
<div>2019-06-14 16:55:13,185 - 142.55.243.12 - DEBUG [net.shibboleth.idp.profile.interceptor.impl.PopulateProfileInterceptorContext:126] - Profile Action PopulateProfileInterceptorContext: Installing flow intercept/terms-of-use into interceptor context</div>
<div>2019-06-14 16:55:13,191 - 142.55.243.12 - DEBUG [net.shibboleth.idp.profile.interceptor.impl.FilterFlowsByNonBrowserSupport:52] - Profile Action FilterFlowsByNonBrowserSupport: Request does not have non-browser requirement, nothing to do</div>
<div>2019-06-14 16:55:13,192 - 142.55.243.12 - DEBUG [net.shibboleth.idp.profile.interceptor.impl.SelectProfileInterceptorFlow:101] - Profile Action SelectProfileInterceptorFlow: Checking flow intercept/terms-of-use for applicability...</div>
<div>2019-06-14 16:55:13,192 - 142.55.243.12 - DEBUG [net.shibboleth.idp.profile.interceptor.impl.SelectProfileInterceptorFlow:84] - Profile Action SelectProfileInterceptorFlow: Selecting flow intercept/terms-of-use</div>
<div><b>2019-06-14 16:55:13,429 - 142.55.243.12 - ERROR [net.shibboleth.idp.profile.interceptor:-2] - Uncaught runtime exception</b></div>
<div><b>org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'shibboleth.consent.terms-of-use.Key' available</b></div>
<div><b>        at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)</b></div>
<div>2019-06-14 16:55:13,443 - 142.55.243.12 - WARN [org.opensaml.profile.action.impl.LogEvent:105] - A non-proceed event occurred while processing the request: RuntimeException</div>
<div><br>
</div>
</div>
<div>Any ideas? Here is the config:</div>
<div><br>
</div>
<div style="margin-left: 3ch;">
<div># messages/messages.properties</div>
<div>my-terms = my-tou</div>
<div>my-tou.title = My Terms of Use</div>
<div>my-tou.text   = My text</div>
<div><br>
</div>
<div># conf/intercept/consent-intercept-config.xml</div>
<div><bean id="shibboleth.consent.terms-of-use.Key"</div>
<div>        class="com.google.common.base.Functions" factory-method="compose"></div>
<div>    <constructor-arg name="g"></div>
<div>        <bean class="com.google.common.base.Functions" factory-method="forMap" c:defaultValue="terms-of-use"></div>
<div>            <constructor-arg name="map"></div>
<div>                <map></div>
<div>                    <entry key="https://someSP1.somedomain" value="my-terms" /></div>
<div>                </map></div>
<div>            </constructor-arg></div>
<div>        </bean></div>
<div>    </constructor-arg></div>
<div>    <constructor-arg name="f"></div>
<div>        <ref bean="shibboleth.RelyingPartyIdLookup.Simple" /></div>
<div>    </constructor-arg></div>
<div></bean></div>
<div><br>
</div>
<div># conf/relying-party.xml</div>
<div><bean parent="RelyingPartyByName" c:relyingPartyIds="#{{'https://someSP1.somedomain', 'https://someSP2.somedomain, 'https://someSP3.somedomain'}}">;</div>
<div>    <property name="profileConfigurations"></div>
<div>        <list></div>
<div>            <bean parent="SAML2.SSO" p:encryptAssertions="false" p:postAuthenticationFlows="terms-of-use" /></div>
<div>        </list></div>
<div>    </property></div>
<div></bean></div>
<div><br>
</div>
</div>
<div>regards,</div>
<div>Ryan</div>
<div style="margin-left: 3ch;">
<div></div>
<div></div>
<div></div>
</div>
</body>
</html>