我将Axis2/C与Staff项目非官方地结合起来,简单地扩展了一组方法,以返回带有REST范式的数据集。
现在,我需要对用户进行身份验证,并且我希望使用"staff.Login“内建的人员服务,总是使用REST方法。
我能够调用"login“和"openSession”方法(它们都返回了一个有效的sessionID),但是我不能在接下来的调用中限制这个会话,因为如果我后来调用该方法"getUserName“,它会说我是一个来宾用户,而不是我之前验证过的用户!
是否必须像传递令牌一样,在每个后续调用上传递会话ID?有人能帮我链接到任何关于登录服务的文档或例子吗?(我在网上找不到多少)
谢谢。
PS: Staff有一个测试此服务的示例客户端,它正确运行,但我需要使用REST方法从浏览器中使用该服务。
发布于 2015-10-29 14:39:40
当使用REST+JSON时,您的请求可能是这样的:
{
"@headers": {
"SessionId":"SID"
},
"GetUserName": {}
}如果您使用的是REST+SOAP,您的请求可能如下所示:
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header>
<sid:SessionId xmlns:sid="http://tempui.org/staff/sessionid">SID</sid:SessionId>
</soapenv:Header>
<soapenv:Body>
<ns0:GetUserName xmlns:ns0="http://tempui.org/staff.Login"/>
</soapenv:Body>
</soapenv:Envelope>其中SID是由"openSession“或”登录“返回的会话ID。
https://stackoverflow.com/questions/33414187
复制相似问题