我对SAML断言到期与应用程序会话到期感到困惑.
简单来说,当我们在容器中部署应用程序时,会创建一个会话.可以使用web.xml中的以下条目控制此会话到期
<session-config>
<session-timeout>60</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
接下来,当我使用SAML扩展的Spring Security时,显然会应用相同的会话概念.(我正在WildFly 8.2中部署应用程序,如果这很重要)
此外,当应用程序会话到期时,注销行为似乎等同于本地注销概念.
到现在为止还挺好.现在让我们说SAML断言好2小时,用户已经积极工作了2个小时.接下来的请求会发生什么?它应该重新登录IDP吗?但是,这对用户来说不方便吗?如果应用程序重定向到IDP以在断言到期2小时后再次登录,那么应如何处理AJAX请求?
这是参考这里的问题
如何以最佳方式检测ajax请求?
我目前在我的控制器中使用它:
private boolean isAjax(HttpServletRequest request){
String header = request.getHeader("x-requested-with");
if(header != null && header.equals("XMLHttpRequest"))
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这种方式,我认为Spring应该有更好的解决方案.