session失效问题

session 失效问题
预想是在session失效之后,返回给前端一个10 ,前端拿到后 会重定向到登出页面

spring security + saml2 做的单点登录

img

一开始登录是好的 所有请求都可以被拦截器拦截到

但是session失效之后,所有请求都没有到拦截器

img

直接报了302,还有一个sso的请求

img

以下为拦截器配置

img

img


麻烦看下是哪里有问题了

大概率是在进入拦截器前被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类型的,可以返回一个格式化后的对象,然后前端解析后重定向。