首页 > 我在用java写单点登录服务端,请大家帮忙看一下该怎么写单点退出逻辑?

我在用java写单点登录服务端,请大家帮忙看一下该怎么写单点退出逻辑?

我客户端用的是shiro+spring+hibernate 我用shiro的casfilter和casrealm进行跳转以及认证信息的封装 客户端还用了shiro-cas
服务端我并没有用cas-server-webapp,而是我自己写的
我的服务端思路是首先客户端的casfilter进行认证信息判断,然后重定向到服务端,然后服务端登陆后返回给客户端一个ticket,ticket是加密后的用户名。
客户端拿到ticket立即重定向到服务端,服务端校验ticket,然后再重定向到客户端,客户端向服务端另一个url发起请求获取认证信息,客户端向这个url仍然发送ticket,最后获取xml认证信息。
以上是我写的cas服务端用spring mvc和jdbctemplate以及castor完成,并且可以登录
现在的问题是:如何写单点退出?因为服务端我用的是自己的,所以单点退出只能自己手写,没有思路。
还有客户端用<shiro:principal/> 无法获取除了用户名以外的信息(比如我想获取生日这个属性但抛出异常告诉没有该属性),我服务端发给客户端的信息是完整的,我通过断点调试casrealm发现客户端接收到的xml认证信息也是完整的


你只需要清除你的session就可以了啊,清除单点登录服务器的session和对应的cookie 由于每次请求都会过你的filter 验证单点登录服务器上的session和cookie以及对应的token的时效性,就可以保证不出问题,cas-server也是这样做的啊。可以好好看下cas协议的实现和cas server的原理,他就是这样的思想。

【热门文章】
【热门文章】