Spring Security深入浅出--7、单机session管理

项目地址:链接:https://pan.baidu.com/s/106lZU8P9gHG4A3aP4OpOgQ
提取码:xs3v

在spring social中,一共是三种登陆方式

1、用户名+密码;2、手机号+短信登陆;3、社交网站账号登陆

这三种方式都是采用session管理登陆的。

所以这篇文章我们讲解一下session

配置session的超时时间(单位是秒,默认是60*30=半个小时)

现在虽然设置了,但是如果小于60s也会失效

查看类TomcatEmbeddedServletContainerFactory

获得我们设置的秒数,然后转换成分钟数,然后进行比较,如果小于一分钟则使用一分钟

失效以后,服务器是不知道到底是因为没有登录还是session失效导致的,所以我们需要自己写逻辑

配置上过期失效跳转的地址

配置映射 处理

授权

 启动,测试

现在要处理的就是现在登录的session踢掉之前登陆的session

设置为1,也及时服务器这边一直只有一个session,也就是现在登录的session踢掉之前登陆的session

对于过期session的具体处理

重启服务器,分别用谷歌和火狐浏览器登陆

如果你登陆成功之后,不希望第二个用户把你踢下去,而是他不能登陆,设置为true(当session达到最大数量之后,阻止后面的用户登陆)

 现在都是返回的json数据,现在我们重构,使得在需要返回json的时候,返回json数据,在需要返回页面的时候返回html页面

需要的参数都放到SessionProperties类中

判断逻辑

为什么使用@ConditionalOnMissingBean(SessionInformationExpiredStrategy.class)注解,方便我们写,只要我们重写SessionInformationExpiredStrategy接口,在注入到bean中就可以实现我们自己的bean

失效页面

发布了480 篇原创文章 · 获赞 100 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_37909508/article/details/104144158