Создание клиента WebService с использованием Apache Axis2 и Rampart

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

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

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

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

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

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

Спасибо.


person Aditya    schedule 10.12.2010    source источник


Ответы (2)


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

В моем проекте исходный код Java такой же, когда я использую WS-Security (рабочая среда) и без WS-Security (тестовая среда). Все, что мне нужно сделать на стороне клиента, это включить / отключить конфигурацию вала из 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>
person Michał Niklas    schedule 10.12.2010
comment
Привет, спасибо за информацию. пройдёт по ссылкам и свяжется с вами. - person Aditya; 10.12.2010
comment
Привет, Майкл, ваше предложение - это то, что я использовал в моем axis2.xml, и оно сработало !! единственное изменение, которое я сделал, это то, что, поскольку я не использую класс обработчика паролей, я заменил этот тег тегом ‹password› и ввел пароль напрямую. Работал у меня. Большое спасибо за ваше предложение. :) - person Aditya; 14.12.2010
comment
Без проблем! Вы можете принять мой ответ, чтобы он не был отмечен как неотвеченный и мы набираем больше очков. - person Michał Niklas; 14.12.2010
comment
Просто хотел повторить рекомендацию @ MichałNiklas в этой статье: ibm.com/developerworks/ java / library / j-jws4 Я не знаю, почему он не появился в моем поиске в Google, я, должно быть, использовал неправильные поисковые запросы. СУПЕР полезно - спасибо! - person Stew; 10.12.2011

Прежде всего вам необходимо загрузить файлы модулей rampart в файлы модулей оси 2. Затем загрузите библиотеку, необходимую для вала, в папку 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> 

with in tag. then run the web service and copy the address of wsdl and put into soapUi and then add the authentication header. and check it.

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

person jaideep singh    schedule 18.04.2011