0 0

web service接口问题5

目前2个项目要进行项目登录状态的同步
(登录前 以确定2个项目中都有一样的用户数据)
在A项目中登录了。B项目也要登录
反则一样。
web service接口我知道,但是webservice接口
只是一个方法 并不能在里面取得其当前项目中
的session. 我想问下能不能用struts2 action
直接做为接口来调用?
如:http://www.xxx.com/user/webserivce!login.action?user=xxx
这样做的和webservice 传统的方式有什么区别?为什么?
2013年12月10日 11:22

3个答案 按时间排序 按投票排序

0 0

采纳的答案

比较典型的单点登录应用, 可以考虑引入第三方的单点登录,比如 http://www.jasig.org/cas

当然还有一个解决方法是共享两个项目的Session(比如使用统一缓存来存储Session),也就是将Session服务器独立出来,这个稍微复杂一点。
搭建好以后这样:
    . A项目或B项目用户登录: UserInfo ==> Session ==> Memached
    . 检查用户登录:Memached ==> Session ==> Session.contains(sessionID)

当然,也可以通过共享Cookie的方式,但是两个项目需要在同一个域名下面,另外Cookie的安全性不如Session好(浏览器端存储的原因)

WebService与Action本质上没有特别大的区别,只不过WS将调用过程的约束标准化了,Action没有标准化而已,像题主这样的应用不适合采用WS或者Action的方式,不建议采用(如果一定要采用的话需要加访问控制,WS或action不能让用户去调用)

2013年12月11日 11:12
0 0


嗯,单点登录思想。通过统一平台认证,然后统一平台往各个子系统写入session.
这是我们之前的一个解决方案。。。

2013年12月12日 16:09
0 0

搜下单点登录,了解下,
我们网站实现单点登录的思想是cookie+登录、验证登录接口+redis,

你也可以使用类似的思想做,直接废弃session

2013年12月10日 13:29

相关推荐

Global site tag (gtag.js) - Google Analytics