我有一个使用SAML 2.0的spring boot应用程序。我的登录代码工作正常。但是,有时-当我命中/ saml / logout时,logoutRequest不会发送到IDP。但是,它确实会调用注销成功处理程序并使本地会话无效。
我的SAMLAuthentcicationProvider bean初始化如下。
@Bean
public SAMLAuthenticationProvider samlAuthenticationProvider() {
SAMLAuthenticationProvider samlAuthenticationProvider = new SAMLAuthenticationProvider();
samlAuthenticationProvider.setUserDetails(samlUserDetailsServiceImpl);
samlAuthenticationProvider.setForcePrincipalAsString(false);
return samlAuthenticationProvider;
}
我想找出并记录未发送SAMLLogout请求的原因。我收集到,如果它不发送logoutRequest-春天认为SAML SSO会话已经注销?如果是这样,samlLogoutProfile中的哪个方法会对此进行检查?
我的断言的subjectconfirmation数据中确实有一个NotOnOrAfter-但是我认为这仅指定了在创建会话时应使用该断言的时间。
断言本身有一个NotOnOrAfter-有效期为一个小时。