目前公司里的项目使用spring security做权限控制,
现在呢,需要实现,不允许多个用户同时登录一个账号,类似是QQ那种,
要是登录了就会回到登录页面,并提示“您的账号已在其他地区登录”。
还有一个功能就是 session超时的时候,当你再进行任何操作都会提示“登录出错”,回到登录页面
我知道spring security本身具备这种功能,只需要配置下就可以。
我的applicationContext-security.xml配置文件中的配置是这样的
<security:session-management invalid-session-url="/login?chaoshi">
<security:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" expired-url="/login?repeat"/>
</security:session-management>
我测试过很多遍,这样配置的效果是,当
session超时和
并发登录都只走
invalid-session-url="/login?chaoshi"
这个路径,也就是
expired-url="/login?repeat" 这个路径它不走!
自己分析后,它不走好像是正常的,因为当
session超时和
并发登录产生的结果都是session失效,
而一旦失效,它就只会走invalid-session-url="/login?chaoshi",可是这样我的功能就实现不了啦!
网上的答案都是只实现
session超时该怎么做,或者是只实现
并发登录该怎么做!
而我现在的问题:既要实现session超时的功能,又要实现并发登录的功能!
请各位大神赐教!