spring-ws получить имя пользователя и пароль

Я изучаю spring-ws чуть больше недели и настроил простой веб-сервис.

Я тестирую его с помощью soapui и указываю имя пользователя и пароль в свойствах запроса.

У моего веб-сервиса нет уровня безопасности, и я не хочу его добавлять. Мне просто нужно вытащить имя пользователя и пароль из запроса, чтобы сделать запросы к другому сервису. Я не хочу указывать имя пользователя или пароль в самом теле запроса.

Все, что я хочу сделать, это получить имя пользователя и пароль из запроса от soapui. Кто-нибудь знает, где логин и пароль в запросе? Являются ли они в заголовке http или заголовке мыла. Заголовок мыла кажется пустым в soapui.

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

Я также пытался получить их с помощью SecurityContextHolder.getContext().getAuthentication();, но это возвращает ноль.

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

У кого-нибудь есть идеи или хорошие знания в этой области?


person mpc    schedule 22.01.2013    source источник


Ответы (1)


Поскольку в вашем приложении нет аутентификации, ваш сервер не запрашивает аутентификацию, а параметры, которые вы указываете в soapUI, никогда не используются (не включаются в http-запрос). Кроме того, нет смысла использовать

SecurityContextHolder.getContext().getAuthentication()

поскольку у вас нет аутентификации, нет аутентифицированного пользователя, и он возвращает null, как вы сказали. Если вам нужно имя пользователя/пароль для доступа к другому ресурсу, вы должны указать их в качестве параметров конфигурации в вашем веб-сервисе.

person dimcookies    schedule 22.01.2013
comment
Спасибо за ваш ответ. К сожалению, мне нужно извлечь имя пользователя и пароль из запроса, их установка в конфигурации невозможна. Я экспериментировал с различными простыми настройками аутентификации, но, к сожалению, безуспешно. Можете ли вы порекомендовать какие-либо хорошие учебные пособия, показывающие действительно простую настройку? Спасибо - person mpc; 23.01.2013
comment
Я добавил базовый менеджер аутентификации в свой проект и теперь могу получить имя пользователя и пароль. Спасибо за понимание :) - person mpc; 23.01.2013
comment
@MatthewCoole У меня такая же проблема. Не могли бы вы опубликовать, как вы настроили базовый менеджер аутентификации для этого? - person babb; 06.02.2013
comment
@babb krams915.blogspot.com/ 2010/12/ spring-security.xml содержит пример менеджера аутентификации, этот пример я взял за основу. Единственная разница в том, что я сделал, заключалась в том, что вместо использования базовой пользовательской службы я реализовал свой собственный поставщик аутентификации, реализовав интерфейс org.springframework.security.authentication.AuthenticationProvider. Надеюсь это поможет :) - person mpc; 07.02.2013