我们正在尝试在Weblogic 10.3.6上部署的Web服务上配置ws-security:目的是仅在经过身份验证时允许执行ws。
因此,我们在默认的weblogic领域创建了一个用户(“虚拟”),并将凭据传递给开发此Web服务客户端的人员。
他发布了一个由SOAP-UI运行的测试Envelope
<soapenv:Envelope xmlns:sch="http://com.webservices.amm.standalone.key.provider/schema.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" 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-2">
<wsse:Username>dummy</wsse:Username>
<wsse:Password Type="**http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest**"><!-- digested password --></wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"><!-- encoding type --></wsse:Nonce>
<wsu:Created>2015-06-24T14:42:48.749Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<sch:searchKeyReq>
<sch:KeyProviderInput>
<!--Here input attributes:-->
</sch:KeyProviderInput>
</sch:searchKeyReq>
</soapenv:Body>
</soapenv:Envelope>
哪个回复是
<?xml version='1.0' encoding='UTF-8'?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body><SOAP-ENV:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">**SOAP-ENV:MustUnderstand**</faultcode>
<faultstring>MustUnderstand headers:[{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood</faultstring>
</SOAP-ENV:Fault></S:Body></S:Envelope>
显然,我认为,这取决于网络服务的ws-policy没有配置。
所以问题是:
1)我们必须通过管理控制台或weblogic @Policy注释与我们的web服务相关联的策略,这些注释与我们在soapenv中看到的绿洲政策相对应:标题标记&gt;?
2)“虚拟”用户必须具有某些特定角色吗?
提前致谢
答案 0 :(得分:0)
您只需将以下行添加到您的网络服务类:
@Policy(uri = "Wssp1.2-2007-Https-UsernameToken-Plain.xml", attachToWsdl=true)
通过此策略,您可以告诉客户端发送用户名和密码(纯文本)。您可以选择其他一些策略来发送加密密码,例如Digest。 您也可以从weblogic控制台中选择此策略。
关于用户的角色,据我所知,在安全领域定义一个新用户的效果非常好,但为了管理角色和权限,应该有一些角色。