Подписывайте и шифруйте SOAP-сообщения с помощью Apache CXF - PullRequest
3 голосов
/ 20 сентября 2010

Я пытаюсь написать веб-сервис «Secure Hello World», используя Apache CXF; Должен заметить, что я новичок в Java и WS- *.

По сути, я хочу сделать веб-сервис hello-world с мыльными сообщениями в и из этого веб-сервиса , подписанные и зашифрованные с использованием сертификатов x.509 .

Я уже прочитал учебник на сайте Apache CXF о WS-Security , но; Я хочу использовать WS-SecurityPolicy вместо перехватчиков.

Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

4 голосов
/ 07 февраля 2012

Вот блог с подробностями об использовании Apache CXF: Добавление заголовков безопасности X.509 к вызовам Apache CXF SOAP (метод WS-SecurityPolicy)

Существует также учебник с исходным кодом, настроенным для использования метода WS-SecurityPolicy.

РЕДАКТИРОВАТЬ: исправлена ​​неработающая ссылка, добавлена ​​ссылка на учебник.

Теперь на сайте CXF есть хороший обзор различных настроек WS-SecurityPolicy, и он ссылается на ссылку выше.

В двух словах (на случай, если ссылки будут снова удалены), WS-SecurityPolicy настроен аналогично методу перехватчика CXF , описанному в вики CXF, за исключением нескольких изменений в файле cxf.xml и cxf-servlet.xml:

cxf.xml

   <jaxws:client name="{http://myport" createdFromAPI="true">
            <!-- You will need to add the corresponding values to a properties file -->
            <jaxws:properties>
                <entry key="ws-security.callback-handler" value="client.ClientKeystorePasswordCallback"/>        
                <entry key="ws-security.encryption.properties" value=keystore.properties"/>
                <entry key="ws-security.signature.properties" value="keystore.properties"/>
                <entry key="ws-security.encryption.username" value="myservicekey"/>
            </jaxws:properties>

CXF-servlet.xml

  <jaxws:properties>
            <entry key="ws-security.callback-handler">
                <ref bean="myPasswordCallback"/>
            </entry>
            <entry key="ws-security.encryption.properties" value="serviceKeystore.properties"/>
            <entry key="ws-security.signature.properties" value="serviceKeystore.properties"/>
            <entry key="ws-security.encryption.username" value="useReqSigCert"/>
        </jaxws:properties> 
0 голосов
/ 25 сентября 2010

Поскольку веб-службы работают по протоколу HTTP, их можно защитить с помощью протокола HTTPS.

Вот ресурс, который может помочь вам указать правильное направление: Использование веб-служб на основе JAX-WS с SSL

Хотя этот ресурс предназначен для JAX-WS, вы должны обнаружить, что большая его часть будет перенесена в Apache CXF.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...