session 失效问题
预想是在session失效之后,返回给前端一个10 ,前端拿到后 会重定向到登出页面
spring security + saml2 做的单点登录
一开始登录是好的 所有请求都可以被拦截器拦截到
但是session失效之后,所有请求都没有到拦截器
直接报了302,还有一个sso的请求
以下为拦截器配置
大概率是在进入拦截器前被sso组件给拦截了
跟saml2 一起调试一下,可能被sso组件拦截了不?
拦截器看着是没有问题的,可以考虑拦截器的相关配置的问题,特别是重定向相关的代码或者配置。检查下或者对比下,或者截个图给大家看看
前端拿到后 会重定向到登出页面
1、session失效后,前端一般是按照header中重定向的。
httpResponse.setHeader("redirectUrl", url_redirect);
2、若是按照输出write,则一般不会单独返回一个字符串10,这样10没有业务含义,并且返回的ContentType是json类型的,可以返回一个格式化后的对象,然后前端解析后重定向。
我觉得单点登录用oauth2一步到位更好
session 失效是指用户在登录或访问网站后,在规定时间内没有任何活动,而导致的登录状态失效。这可以通过设置 session 过期时间来解决。
同意1楼的看法,很大概率是在进入拦截器前被sso组件给拦截了.
从您提供的图片中看,问题可能是配置拦截器的顺序有误。
拦截器应该是从上到下顺序执行的,所以 SAML2Interceptor 应该放在第一位,以便在会话失效时先进行 SAML2 验证。
另外,您还可以尝试在 SAML2Interceptor 中添加对会话失效的判断,并在其中返回指定的状态码,以便前端可以重定向到登出页面。
你这是用的saml2的权限框架吧,302就是已经被权限框架拦截了,302被浏览器解析的结果就是重定向,重定向的地址就是那个sso的地址,如果你想让他重定向到指定页面应该只需要配置一下就可以,找找api看看怎么配置吧
不知道你这个问题是否已经解决, 如果还没有解决的话:1,session失效后,是否有值返回前端
2,又返回值是否是10,解析是否正确,重定向是否正确
jwt不香吗
若是按照输出write,则一般不会单独返回一个字符串10,这样10没有业务含义,并且返回的ContentType是json类型的,可以返回一个格式化后的对象,然后前端解析后重定向。