Получить имя пользователя и пароль от HttpServletRequest
Мне нужно получить имя пользователя и пароль от HttpServletRequest
, чтобы обработать базовую аутентификацию. У меня есть конечная точка CXF
и базовый перехватчик auth. HttpServletRequest
я получаю так:
public void handleMessage(Message message)
throws Fault {
HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST);
}
Когда я попытался отладить код, и я вижу, что:
request.getAuthType() is null
request.getRemoteUser() is null
Имя пользователя и пароль, которые я отправляю с запросом от Soap UI. Итак, вопрос в том, как я могу получить имя пользователя и пароль из запроса?
EDIT
Заголовок выглядит так: это:
POST http://localhost:8011/GradIrelandUserRegistration HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Authorization: Basic UGF1bGl1czpQYXVsaXVzMTIz
Content-Length: 3170
Host: localhost:8011
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Они говорят, что авторизация является основной, но тогда почему вызов request.getAuthType()
возвращает null?
2 ответа:
Я смог разобраться в этом сам. В Soap UI мне нужно было изменить тип аутентификации на:
Preemptive
И затем использовать:
AuthorizationPolicy policy = (AuthorizationPolicy) message.get(AuthorizationPolicy.class.getName());
Из объекта политики теперь я могу получить имя пользователя и пароль.
Это может быть полезно для вас . Я немного новичок в анализе данных SOAP, так что, если не работает, то дайте мне знать краткую проблему. . Также проверьте этот J-Query Plugin для разбора SOAP-сервисов с базой данных. проверьте это переполнение стека