Spring WS-Security在WSDL中可见

时间:2009-06-25 11:00:16

标签: wsdl ws-security spring-ws

我已经在我的网络服务上通过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>

2 个答案:

答案 0 :(得分:1)

完全有可能在wsdl !!!!!

中传达ws-security信息

看看ws-policy,特别是ws-securitypolicy(两者结合在一起)

但是,我无法特定地帮助您实施。

希望这会有所帮助

答案 1 :(得分:1)

WS-Security本身并未放在WSDL中。 WS-Policy构建于WS-Security之上,可以使用这些更复杂的标准将其添加到WSDL中,但听起来并不像你想要的那样。

在SOAPUI中,安全信息构建为项目的设置。如果双击项目,则会显示一个安全选项卡。如果使用基于PKI的方案,则可以添加密钥库,并且可以定义传出和传入配置。可以对每条消息应用一对配置,具体取决于您要保护的消息中的内容。

请参阅: http://www.soapui.org/userguide/projects/wss.html