Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > SOAP аутентификация


Автор: N0dwis 19.10.2010, 14:12
Нужно сделать аутентификацию пользователей веб-сервиса на jax-ws. Из возможных медотов я выбрал передачу имени/пароля в дополнительных header-ах SOAP сообщения и обработкой в handler-е. Все, в принципе, работает, но для того, чтобы отобразить в wsdl файле нужные заголовки приходится объявлять веб-методы как
Код

public Order[] getList(
                @WebParam(name = "id") int ownerId,
                @WebParam(name = "UserName", header = true, mode = WebParam.Mode.IN) String userName,
                @WebParam(name = "Password", header = true, mode = WebParam.Mode.IN) String password
            )  {
         ...
        }

Довольно громоздно и неудобно.
Нельзя ли как-нибудь объявить необходимость в этих заголовках для всего сервиса? Или для отдельных методов, но какой-нибудь аннотацией? Сами значения userName и password в методе не используются.

Спасибо.

Автор: Старовъръ 19.10.2010, 14:35
У SOAP конверта можно добавлять security-информацию в заголовке. Почитай вот про http://ws.apache.org/wss4j/.

Автор: N0dwis 19.10.2010, 14:46
По-моему, это немного не то. Мне нужно просто как-то объявить в wsdl файле, что для всех веб сервисов необходимы дополнительные заголовки. Или хотя-бы скоратить запись - избавиться от лишних WebParam.

Автор: Старовъръ 19.10.2010, 15:28
Тебе нужна аутентификация? Она реализована с помощью интерсепторов. Ты можешь конечно что-то сам реализовать, но вместо этого лучше использовать готовые решения, такие как WSS4J, который создан специально для этих целей.

Автор: N0dwis 19.10.2010, 16:45
А где-нибудь есть примеры использования? Из API мало что понятно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)