我正在使用WSO2 Identity Server的4.1.0版。我使用了WSO2 AuthenticationAdmin服务(localhost:9443 / services / AuthenticationAdmin)来登录,检查身份验证器等。还有一个“注销”操作。
当soapUI生成注销请求时,它不包含任何值得注意的元素,这由具有命名空间http://authentication.services.core.carbon.wso2.org的模式(xsd)确认。 SOAP请求主体如下。
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:aut="http://authentication.services.core.carbon.wso2.org">
<soap:Header/>
<soap:Body>
<aut:logout/>
</soap:Body>
</soap:Envelope>
发送请求时,RAW响应如下。
HTTP/1.1 202 Accepted
Date: Wed, 26 Jun 2013 08:29:48 GMT
Server: WSO2 Carbon Server
Content-Type: text/xml;charset=UTF-8
Set-Cookie: JSESSIONID=94784CC9FC03E9FA3822CFDDAD0D36F6; Path=/; Secure; HttpOnly
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
首先,我认为响应中没有SOAP消息。此外,HTTP状态为202,这意味着请求被接受进行处理,但处理尚未完成。
如何使用此服务退出?
应该将哪些元素添加到&lt; aut:logout&gt; ?
是否应将JSESSIONID添加到请求的标头中?
如何将此注销与loginWithRememberMeOption结合使用?
-------更新 在查看xsd之后,我看到必须将一个wsa:action添加到SOAP Header中。这样做之后,我收到了以下回复。此回复要求提供MessageID。但我不确定这个值应该是什么。
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
</soapenv:Header>
<soapenv:Body>
<soapenv:Fault>
<soapenv:Code>
<soapenv:Value>soapenv:Sender</soapenv:Value>
<soapenv:Subcode>
<soapenv:Value xmlns:wsa="http://www.w3.org/2005/08/addressing">wsa:MessageAddressingHeaderRequired</soapenv:Value>
</soapenv:Subcode>
</soapenv:Code>
<soapenv:Reason>
<soapenv:Text xml:lang="en-US">A required header representing a Message Addressing Property is not present</soapenv:Text>
</soapenv:Reason>
<soapenv:Detail>
<wsa:ProblemHeaderQName xmlns:wsa="http://www.w3.org/2005/08/addressing">wsa:MessageID</wsa:ProblemHeaderQName>
</soapenv:Detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
添加生成的MessageID时,再次是具有HTTP 202状态的空SOAP回复。
答案 0 :(得分:0)
注销方法只会使会话无效。
您只需从soapUI调用注销操作即可。它没有参数。
如果查看AuthenticationAdmin WSDL,可以看到没有用于注销操作的输出。这就是你获得HTTP 202状态代码的原因。
您可以通过在carbon.xml(/repository/conf/carbon.xml)中将<HideAdminServiceWSDLs>
配置更改为false来查看WSDL
<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs>
在浏览器中输入以下内容以查看WSDL。
的https://:9443 /服务/ AuthenticationAdmin WSDL
我希望这有帮助!