关于一级域名相同的两个系统单点登录问题

13-06-26 tianhandigeng

在两台机子上部署了两个系统,一个域名www.xx.com,另一个为forum.xx.com,现在实现单点登录功能,因为两个系统的一级域名都是xx.com,所以准备用filter+Cookie的方式来实现单点登录,具体的做法如下:

登录入口在www.xx.com所在的系统,登录成功后保存一个域为xx.com,值为登录名的cookie,当进入forum.xx.com,在过滤器中首先判断session中是否有信息,没有的话从cookie中获取登录名信息,存入到session中,这样forum.xx.com就不用登录

但是这样有个问题,在www.xx.com中登录保存的这个cookie,是会话cookie,存在浏览器内存中的,只要浏览器不关闭的话一直都存在。假如www.xx.com中的session过期,这时候进入forum.xx.com系统,通过过滤器操作,forum.xx.com表现的还是登录状态,也就是说只要不关闭浏览器,在www.xx.com中登录一次后,forum.xx.com永远都是登录状态,请问一下,这种做法可不可取,在安全性方面怎样,对于这种一级域名相同的两个系统,解决单点登录还有没有其他的解决办法,是不是如果要安全的话还是必须使用传统单点登录解决方案(使用单点登录框架)来做?

banq
2013-06-27 08:59

2013-06-26 12:25 "@tianhandigeng

"的内容

也就是说只要不关闭浏览器,在www.xx.com中登录一次后,forum.xx.com永远都是登录状态 ...

我个人认为这正常,因为你使用同一个cookie,考虑安全可使用flash/applet隐藏cookie。

推荐spring-security-pac4j,支持:

OAuth (1.0 & 2.0)

CAS (1.0, 2.0, SAML, logout & proxy)

HTTP (form & basic auth authentications)

OpenID.

[该贴被banq于2013-06-27 09:02修改过]