web service接口问题

来源:互联网 发布:网络妖人再造天txt 编辑:程序博客网 时间:2024/05/04 11:40

web service接口问题5

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

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

00

采纳的答案

比较典型的单点登录应用, 可以考虑引入第三方的单点登录,比如 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
  • Comment添加评论
00


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

2013年12月12日 16:09
  • Comment添加评论
00

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

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

2013年12月10日 13:29
原创粉丝点击