目前2个项目要进行项目登录状态的同步
(登录前 以确定2个项目中都有一样的用户数据)
在A项目中登录了。B项目也要登录
反则一样。
web service接口我知道,但是webservice接口
只是一个方法 并不能在里面取得其当前项目中
的session. 我想问下能不能用struts2 action
直接做为接口来调用?
如:http://www.xxx.com/user/webserivce!login.action?user=xxx
这样做的和webservice 传统的方式有什么区别?为什么?
比较典型的单点登录应用, 可以考虑引入第三方的单点登录,比如 [url]http://www.jasig.org/cas[/url]
当然还有一个解决方法是共享两个项目的Session(比如使用统一缓存来存储Session),也就是将Session服务器独立出来,这个稍微复杂一点。
搭建好以后这样:
. A项目或B项目用户登录: UserInfo ==> Session ==> Memached
. 检查用户登录:Memached ==> Session ==> Session.contains(sessionID)
当然,也可以通过共享Cookie的方式,但是两个项目需要在同一个域名下面,另外Cookie的安全性不如Session好(浏览器端存储的原因)
WebService与Action本质上没有特别大的区别,只不过WS将调用过程的约束标准化了,Action没有标准化而已,像题主这样的应用不适合采用WS或者Action的方式,不建议采用(如果一定要采用的话需要加访问控制,WS或action不能让用户去调用)
搜下单点登录,了解下,
我们网站实现单点登录的思想是cookie+登录、验证登录接口+redis,
你也可以使用类似的思想做,直接废弃session
嗯,单点登录思想。通过统一平台认证,然后统一平台往各个子系统写入session.
这是我们之前的一个解决方案。。。