我已经在我的网络服务上通过WS-Security实现了身份验证,如http://static.springframework.org/spring-ws/sites/1.5/reference/html/security.html所述,如下所示:
<bean id="callbackHandler" class="org.springframework.ws.soap.security.wss4j.callback.SimplePasswordValidationCallbackHandler">
<property name="users">
<props>
<prop key="bart">arnie</prop>
</props>
</property>
</bean>
<bean id="annotationMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping">
<property name="interceptors">
<list>
<bean class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="UsernameToken" />
<property name="securementActions" value="NoSecurity" />
<property name="validationCallbackHandler" ref="callbackHandler" />
</bean> ...
但是,客户端(如SoapUI)不知道他们应该使用安全性,因为WSDL中没有提到它。我怎么能得到它?这就是我生成它的方式:
<bean id="qwertyService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition">
<property name="schemaCollection" ref="schemaCollection" />
<property name="portTypeName" value="QwertyService" />
<property name="locationUri" value="/QwertyService/" />
<property name="targetNamespace" value="http://www.ead2.nl/demo/wsdl" />
</bean>
答案 0 :(得分:1)
完全有可能在wsdl !!!!!
中传达ws-security信息看看ws-policy,特别是ws-securitypolicy(两者结合在一起)
但是,我无法特定地帮助您实施。
希望这会有所帮助
答案 1 :(得分:1)
WS-Security本身并未放在WSDL中。 WS-Policy构建于WS-Security之上,可以使用这些更复杂的标准将其添加到WSDL中,但听起来并不像你想要的那样。
在SOAPUI中,安全信息构建为项目的设置。如果双击项目,则会显示一个安全选项卡。如果使用基于PKI的方案,则可以添加密钥库,并且可以定义传出和传入配置。可以对每条消息应用一对配置,具体取决于您要保护的消息中的内容。