Создание клиента WebService с использованием Apache Axis2 и Rampart - PullRequest
3 голосов
/ 10 декабря 2010

У нас есть требование, чтобы в IBM Websphere Integration Developer 6.1 был создан веб-сервис с защитой токена имени пользователя. Теперь, чтобы проверить это, мы должны разработать клиент Web-сервиса на Java. Требуется сделать это с помощью Apache Axis2. После долгих чтений я смог использовать Axis2 для генерации клиента для простого веб-сервиса, который не требует аутентификации, и я смог правильно его протестировать. Но я узнал, что для того, чтобы использовать токен UserName Security с axis2, необходим вал.

Теперь мне нужно знать, как использовать Rampart с Axis2 в затмении. В наших системах не установлен сервер Apache, но мы развернем его в Eclipse. Даже после прочтения множества статей на эту тему, я не смог заставить работать Rampart.

Может кто-нибудь подскажет, как настроить Rampart в eclipse, а также как использовать его для генерации клиента WebService с использованием токена UserName?

До сих пор, используя Axis2, я делал следующие шаги. 1. Создайте проект Java и импортируйте в него требуемые WSDL. 2. Используя WSDL, я создаю WebServiceClient, и генерируются файлы следующих типов а. Файл интерфейса Java б. Файл прокси Java, который реализует интерфейс, упомянутый в. с. Файл-заглушка Java, который расширяет org.apache.axis.client.Stub и реализует интерфейс, упомянутый в. д. Файл службы Java, который снова является интерфейсом е. Файл Java ServiceLocator, который реализует вышеуказанный интерфейс.

Итак, мне также нужно знать, как я могу использовать эти файлы для тестирования веб-службы токена имени пользователя.

Когда я делаю вышеупомянутое, используя динамический веб-проект, щелкаю правой кнопкой мыши на WSDL и нажимаю на создание клиента, создаются файлы ServiceCallBackHandler.java и HttpSrviceStub. Как я могу использовать их для тестирования?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

Я не использовал rampart для токенов имени пользователя, но для моих сервисов (подписывание и шифрование) документация IBM была действительно полезной. Взгляните на: http://www.ibm.com/developerworks/java/library/j-jws4/ Web-сервисы Java: основы Axis2 WS-Security; Узнайте, как установить Rampart в Axis2 и реализовать обработку UsernameToken

Для моего проекта исходный код Java одинаков, когда я использую WS-Security (рабочая среда) и без WS-Security (тестовая среда). Все, что мне нужно сделать на стороне клиента, это включить / отключить настройку rampart с my_client/axis-repo/conf/axis2.xml. Взгляните на: http://wso2.org/library/240, где вы найдете пример конфигурации, которая может быть вам полезна:

<parameter name="OutflowSecurity">
        <action>
                <items>UsernameToken</items>
                <user>bob</user>
                <passwordCallbackClass>org.apache.rampart.
                samples.sample02.PWCBHandler</passwordCallbackClass>
        </action>
</parameter>
1 голос
/ 18 апреля 2011

Прежде всего вам нужно загрузить файлы модулей Rampart в файлы модулей axis2.Затем загрузите библиотеку, необходимую для rampart, в папку lib.а затем использовать класс обработчика обратного вызова, в котором вы должны определить логику для имени пользователя и пароля.Все вышеперечисленное доступно в исходном коде ramart и папке rampart.u необходимо загрузить его с веб-сайта rampart. После этого в axis2.xml нужно определить тег

<parameter name="InflowSecurity">
  <action>
    <items>UsernameToken</items>
    <user>jaideep</user>
    <passwordCallbackClass>com.mltvacations.externalapi.callbackhandler.PasswordCallbackHandler</passwordCallbackClass>
    <passwordType>PasswordText</passwordType>


  </action>
</parameter> 

в теге.затем запустите веб-сервис и скопируйте адрес wsdl и поместите в soapUi, а затем добавьте заголовок аутентификации.и проверьте его.

Если возникнут какие-либо проблемы, сообщите мне. Я дам вам удовлетворительный ответ, потому что я использовал защиту вала.

...