我正在尝试使用基于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>
当我尝试在该服务上执行任何方法时,会发生错误。我应该修改什么来添加我的密钥? 任何人吗?
答案 0 :(得分:0)
不要将BasicHTTPBinding与硬编码头一起使用。请改用WCF中的内置WS-Security支持。见http://msdn.microsoft.com/en-us/library/vstudio/ms731058(v=vs.90).aspx。另外,请查看使用服务WSDL时生成的配置。
答案 1 :(得分:0)
尝试使用wsse:Password
中的密码类型http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest