我的项目要集成一些已经在运行的应用,希望实现以下目标: 1:单点登陆,在我的项目中登录后,就可直接使用其它应用中的页面,不用再登录 2:不登录的话,不允许直接访问应用中的地址 3:暂不考虑在其它应用中的角色权限问题,只要登录都可访问 目前的思路: 1:在我应用中登录后,会产生一个加密字符串,通过我应用访问其它应用的页面,这个加密字符串会自动作为参数加到url后面 2:在其它应用中加filter,在其中解析到这个加密字符串,使用我提供的jar中方法解密字符串,看是否与约定相同,若相同,则认为已登录,若不相同,则认为未登录 这种方法有很多问题,比如说如果别人解析到这个加密字符串,就可以通过url直接访问各应用了。 有没有更好的方法啊?
2 检查cookies是否为空
问题是,我要访问的其它应用可能根本不是这台服务器上的,它们也不可以直接访问我登录的应用的session啊
cookie也不成,因为要集成的应用可能根本不是同一个域名
考虑到安全问题,这里的token生成方法要做的严密一些, 除了选择合适的加密算法, 也至少把密码和时间戳混合加密成一个token. 在filter中解密出密码和时间戳,不仅判断密码是否正确,也看时间戳是否过期.
恐怕不能在所有的应用上部署我的filter
可是这样作只能知道用户是否登录,而无法获取用户权限。而且,这个token如果被人获取了怎么办?