我们正尝试在部署在WebLogic10.3.6上的We服务上配置ws-security :其目的是仅允许在通过身份验证的情况下执行ws。
因此,我们在默认的weblogic领域中创建了一个用户("dummy"),并将凭据传递给开发此webservice的客户端的人。
他发布了一个由SOAP-UI运行的测试信封
<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服务的ws-policy的配置。
所以问题是:
1)我们必须通过管理控制台或通过weblogic @Policy注解将哪个策略与我们的we服务相关联,这与我们在soapenv:Header tag>中看到的oasis策略相对应?
2)“虚拟”用户必须有一些特定的角色?
提前感谢
发布于 2016-05-15 13:26:23
您只需将以下行添加到您的web服务类中:
@Policy(uri = "Wssp1.2-2007-Https-UsernameToken-Plain.xml", attachToWsdl=true)通过此策略,您可以告诉发送其用户名和密码(纯文本)的客户端。您还可以选择其他一些策略来发送加密的密码,例如Digest。您也可以从weblogic控制台中选择此策略。
关于用户的角色,据我所知,在安全领域定义一个新用户确实很有效,但为了管理角色和权限,应该有一些角色。
https://stackoverflow.com/questions/31068350
复制相似问题