Базовая авторизация Java с URLConnection - PullRequest
1 голос
/ 01 июня 2010

Я открываю соединение с WebService с помощью класса URLConnection. Я также установил свойство запроса для базовой авторизации следующим образом:

c.setRequestProperty("Authorization", "Basic " + usernameAndPasswordEncoded);

Где c - объект типа URLConnection. Так что это клиентская сторона вызова WebService. Теперь на стороне сервера мне нужно получить имя пользователя из сессии:

User user = (User) request.getSession().getAttribute("user");

Но это не получит имя пользователя. Также, если я просматриваю режим отладки, я вижу анонимное имя пользователя в объекте HttpSession. Что нужно сделать для решения этой проблемы, чтобы имя пользователя отправлялось через клиент на сервер WebService для авторизации?

Спасибо всем!

Ответы [ 2 ]

3 голосов
/ 01 июня 2010

На стороне сервера вам нужно указать метод входа в систему в web.xml. Например,

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>My App</realm-name>
</login-config>

Как только вы это сделаете, имя пользователя должно быть доступно с помощью request.getRemoteUser().

0 голосов
/ 01 июня 2010

Спецификация сервлета предоставляет явные абстракции для этого - вам нужно request.getRemoteUser(). Или, возможно, request.getUserPrincipal()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...