WSO2 AuthenticationAdmin注销

时间:2013-06-26 08:49:57

标签: authentication soap wso2 logout wso2carbon

我正在使用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回复。

1 个答案:

答案 0 :(得分:0)

注销方法只会使会话无效。

您只需从soapUI调用注销操作即可。它没有参数。

如果查看AuthenticationAdmin WSDL,可以看到没有用于注销操作的输出。这就是你获得HTTP 202状态代码的原因。

您可以通过在carbon.xml(/repository/conf/carbon.xml)中将<HideAdminServiceWSDLs>配置更改为false来查看WSDL

<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs>

在浏览器中输入以下内容以查看WSDL。

的https://:9443 /服务/ AuthenticationAdmin WSDL

我希望这有帮助!