2 tengyue5i5j tengyue5i5j 于 2013.09.23 20:19 提问

关于多个不同的Ip客户端调用同一个webservice方法,服务端进行用户会话数据区分

目前在写一个webservice供外部进行调用,由于要进行身份的验证,所以我在webservice的服务端加如了拦截器(客户将自己的信息写在soapHead消息中),然后在拦截器中取出soapHead中的消息,进行数据库用户信息的验证,验证通过之后才运行进行相关接口的调用。问题是在拦截器验证通过后,我要在调用的webservice接口方法中,​用到用户的身份信息去取其他相关数据。该怎么做呢? 开始我想到的是申明一个静态的变量,然后再拦截器中把数据存到静态变量中,然后webservice的接口方法中就可以直接使用了。过后想了想好想不对,如果有很多的不同IP的客户端都来调用webservice接口,那数据岂不是乱套了? 而且怎么判断哪个数据是哪个客户端的呢?

1个回答

ygycomon
ygycomon   Rxr 2013.09.24 09:41

可以参考http session的实现,为每一个连接赋予一个sessionid,在每一次交互都带上这个参数,就可以识别了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
WebSocket区分不同客户端两种方法(HttpSession和@PathParam)
介绍     在使用websocket来制作多人即时聊天工具的时候,难免会遇到一个问题,如何区分不同的客户端。想要解决这个问题就等于是要解决这样一个问题:如何把当前登录用户的userId传给服务端呢?因为不同的客户端代表着不同的用户,做到了获取不同客户端的userId那么自然就把不同的客户端区分开来了。经过查找资料和试验,我找到了两种可行获取客户端userId的方法。一种是通过在Server取H
TCP/IP Server同一个端口 怎么区分不同socket
多线程情况下,服务器端监听(listen)某个端口后,每accept一个客户端的连接就会产生一个新的Socket 新产生的Socket的端口是多少?  答案是服务器端口还是Listen端口。  进程间不能用同一端口,但是进程内部不同Socket可以用同一个端口。  Client端发送给Server同一端口的不同Socket怎么区分。  用Client端Socket端口区分!
一分钟解惑:上万个用户请求,服务器如何区分
一分钟通俗解释:          ①当浏览器首次访问服务器时,服务器会为客户端创建一个session(每个用户独有的房间,用来存放这个对象的相关信息和内容),并通过特殊算法算出一个sessionID(类似于双方都知道的唯一暗号),用来标识该session对象。          ②当浏览器再次(session还在有效时间内)向服务器请求资源的时候,浏览器将sessionID和请求内容一起
WebService客户端调用服务端方法的实例
本实例是通过客户端通过WebService,调用数据库端方法的实例。 例子中包含cxf的jar包,在调用服务器端方法时,首先要在cmd中,通过wsdl生成服务器端的接口、接口实现类等相关的javal类。 cmd WSDL2JAVA http://IP:8080/项目名/服务器端设置好的调用方法?方法名 如:wsdl2java http:127.0.0.1:8080/WS_Service/test?test 本例中的重点在接口实现类中。
解决会话多个请求之间数据共享的问题:使用Cookie
实际应用中,一个会话应该有多个请求,根据HTTP协议无状态的特点,会话中的每个请求之间无法共享数据,但是实际应用,多个请求之间是需要共享数据,因此,我们需要解决解决一个会话多个请求之间如何共享数据的问题     要解决数据共享问题,可通过以下几种方式:     第一种方式:.使用GET将需要供的数据传递到下一个页面            将需要共享的数据保存到客户端(浏览器),通过Servl
自定义WebService和客户端调用《二》
问题?自定义WebService和客户端调用《二》,客户端调用有几种方式 一、JDK创建WebService服务和使用 Oracle前身sun公司,早就意识到WebService的强大,和它的未来前景,所以在JDK中早就封装了这样的创建WebService服务。 查看DJK-API文档:                 1.新建Java或web工程,建一个类(这个类作
gsoap 在一个客户端中调用多个service的解决方案
文档上关于这个的解决方案有两种1.使用wsdl2h将多个wsdl生成为一个wsdl.2.使用-q指定C++命名空间方法1.没有成功,而且还要解决一大堆的命名空间问题方法2.必须生成一个额外的没有命名空间的env,不然stdsoap2.cpp 编译不过.而且使用env会出很多问题,比如soap_header会调用env文件中的.而不会调用命名空间中我们自己生成的service的相关方法试个很久,最后找到个简单的解决方法,对于要手动更改soap header来说,十分方便好用先使用wsdl2h为不同的wsdl生
CXF获取客户端IP
CXF获取客户端IP      获取客户端IP,可以对访问的IP 进行限制. 1. Message message = PhaseInterceptorChain.getCurrentMessage(); HttpServletRequest httprequest = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP
为什么多个客户端可以连接服务器的同个端口?
平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端口和服务器端通讯。或者http服务器使用80端口也是和多个浏览器进行连接通讯。为什么可以这样呢?操作系统的进程在同个端口的多个连接是如何进行分辨的?译文我们这里讲Socket连接: 1. 端口只是一个数字辨识,不是真正的物理端口; 2. 一个Socket连接的主键(即不同
【LoadRunner知一点】-模拟虚拟用户使用不同的ip
LoadRunner有一个工具"IP Wizard",就可以模拟出多个IP,在进行负载时可以指定让不同的虚拟用户使用不同的IP,完成类似投票系统的业务操作。