1

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 応答になります。

4

1 に答える 1

0

logout メソッドはセッションを無効にするだけです。

ログアウト操作は、soapUI からそのまま呼び出すだけです。パラメータはありません。

AuthenticationAdmin WSDL を見ると、ログアウト操作の出力がないことがわかります。これが、HTTP 202 ステータス コードを取得する理由です。

<HideAdminServiceWSDLs>carbon.xml (/repository/conf/carbon.xml) で構成を false に変更すると、WSDL を表示できます。

<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs>

ブラウザーに次のように入力して、WSDL を表示します。

https://:9443/services/AuthenticationAdmin?wsdl

これが役立つことを願っています!

于 2013-06-27T04:03:13.597 に答える