0

wss4j を使用して Web サービスに接続しようとしています。xml をユーザー名トークン セキュリティとダイジェスト形式のパスワードでラップします。以下は私の要求出力です。

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsse:UsernameToken wsu:Id="UsernameToken-C53A9DE4F384C9293314044748291431">
<wsse:Username>weblogicdev</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">cfxACgO/wSzJSIjd9r8119BURWY=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">76O2tFwe2NQLw/ZOiTgtyA==</wsse:Nonce>
<wsu:Created>2014-07-04T11:53:49.141Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<mdsl:CustomerRequest xmlns:mdsl="www.mdsl.eft.cms.com">
<mdsl:Institution>1
</mdsl:Institution>
<mdsl:Customer_ID>00236615
</mdsl:Customer_ID>
<mdsl:Data_Level>A
</mdsl:Data_Level>
</mdsl:CustomerRequest>   
</soapenv:Body>
</soapenv:Envelope>

このリクエストが私に与えている理由を理解できないようです:

<?xml version='1.0' encoding='UTF-8'?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<faultcode>wsse:FailedAuthentication</faultcode>
<faultstring>Failed to assert identity with UsernameToken.</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

しかし、パスワード ダイジェストを使用して jdev に ws セキュリティを実装すると、リクエストは機能します (weblogic api を使用した jax-ws 実装)。

ユーザー名 weblogicdev とパスワード weblogic123 は有効であり、Web サービスに設定したポリシーがユーザー名パスワード トークン プレーン (クリア テキスト パスワード) の場合、要求は機能しました。

Oracle はダイジェスト パスワードを wss4j で作成したものとは異なる方法で処理しますか? もしそうなら、このパスワードダイジェスト生成を複製するために使用できるアルゴリズムを誰かが持っていますか?

4

1 に答える 1

0

Web サービス用に選択した認証方法によっては、このユーザー/パスワードを Weblogic 管理コンソールの SecurityRealm に追加する必要がある場合があります。

于 2015-02-27T14:58:44.527 に答える