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 です。これは、要求が処理のために受け入れられたが、処理がまだ完了していないことを意味します。
このサービスからログアウトするにはどうすればよいですか?
< aut:logout > にどの要素を追加する必要がありますか?
リクエストのヘッダーに JSESSIONID を追加する必要がありますか?
このログアウトを loginWithRememberMeOption とどのように組み合わせることができますか?
------- 更新 xsd を確認した後、SOAP ヘッダーに wsa:action を追加する必要があることがわかりました。これを行った後、次の返信を受け取りました。この応答は 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 応答になります。