日期:2014-05-17  浏览次数:20600 次

session共享问题,用ServletContext做的,出了问题,大神帮忙看看啊!
session共享问题,用ServletContext做的,出了问题,大概情如下:
2个web项目在同一个tomcat下(tomcat6.0),用ServletContext实现单点登录的,session共享,现在共享是实现了,但问题也来了,当第一个用户登录后,其他用户在不同的机器上再登陆直接有了第一个客户的权限,包括登录名都有了,咋解决的啊,着急啊
------解决方案--------------------
在数据库里面加一个 身份验证的字段,每次执行操作判断一下就行了
------解决方案--------------------
ServletContext实现的实际上不是SESSION共享,而是将多个应用之间共用了一个上下文。在此基础上实现的session共享实际上就是保存多个session之间的关系,换句话说是由自己实现的。

用户u1在a1应用登录后,对应的session - s1 对应了a1的应用权限,在应用a2上具有哪些权限,是需要应用a2更具u1的身份自己生成的。

u1 - a1 - s1 对应关系 、 u1 - a2 - s2 对应关系,这两个之间的关联是保存在统一的上下文里。

权限实现的步骤应该是这样的:
1, u1 在a1 登录,保存 u1 身份 + s1对应关系 到 上下文
2,用户u1跳转到a2后, a2 读取上下文,获得 u1 的身份信息,生成a2的权限信息保存到s2