Spring WS-Security виден в WSDL - PullRequest
1 голос
/ 25 июня 2009

Я реализовал аутентификацию через 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 ]

1 голос
/ 28 августа 2009

WS-Security сам по себе не помещается в WSDL. WS-Policy основывается на WS-Security, возможно, можно использовать эти более сложные стандарты для добавления его в WSDL, но, похоже, это не то, что вам нужно.

В SOAPUI информация о безопасности строится как настройки проекта. Если дважды щелкнуть проект, появится вкладка «Безопасность». Хранилища ключей могут быть добавлены, если вы используете схему на основе PKI и можете определять исходящие и входящие конфигурации. Пара конфигураций может применяться к каждому сообщению в зависимости от того, что в сообщении вы хотите защитить.

См: http://www.soapui.org/userguide/projects/wss.html

1 голос
/ 23 августа 2009

Вполне возможно передать информацию ws-security в wsdl !!!!!

Посмотрите на ws-policy и, в частности, на ws-securitypolicy (оба идут вместе)

Однако я не могу конкретно помочь вам с реализацией.

надеюсь, это поможет

...