2

我正在尝试使用基于 Java 的 Web 服务,每次尝试连接时都会出现这样的错误:

org.apache.ws.security.WSSecurityException:无法对安全令牌进行身份验证或授权;

服务管理员说我应该发送用他发送给我的 AES 密钥加密的密码。

到目前为止,这就是我在 web.config 上的内容

<client>
      <endpoint address="http://webservicer2:8088/billing/"
        binding="basicHttpBinding" bindingConfiguration="ServiceBill3"
        contract="ServiceBilling.ServiceBillingContract" name="ServiceBill3">
        <headers>
          <wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
            soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
            xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <wsse:UsernameToken wsu:Id="UsernameToken-1" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
              <wsse:Username>ohmygod</wsse:Username>
              <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">bbqsauce</wsse:Password>
            </wsse:UsernameToken>
          </wsse:Security>
        </headers>
      </endpoint>
    </client>

当我尝试在该服务上执行任何方法时会发生错误。我应该修改什么来添加我的密钥?任何人?

4

2 回答 2

0

不要将 BasicHTTPBinding 与硬编码的标头一起使用。请改用 WCF 中的内置 WS-Security 支持。请参阅http://msdn.microsoft.com/en-us/library/vstudio/ms731058(v=vs.90).aspx。此外,请查看使用服务 WSDL 时生成的配置。

于 2012-12-17T16:35:35.540 回答
0

尝试在 wsse:Password 中输入密码

http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest
于 2012-12-17T16:45:54.120 回答