Проблема со страницей входа в Java EE - PullRequest
4 голосов
/ 21 мая 2011

Я пытаюсь закодировать форму входа, которая передает имя пользователя и пароль сервлету и позволяет пользователю войти в систему.

Тогда, в сервлете, я вот

request.login(username, password);

но выдает исключение, которое не смогло аутентифицировать пользователя.

String authType = request.getAuthType();
if(authType != null) {
request.login(username, password);
}
  1. Интересно, как кодировать простую страницу входа.
  2. Какая польза от request.authenticate (response);

Я пытаюсь это сделать, и появляется всплывающее окно, которое больше нельзя продолжить.

  1. Я пытаюсь сослаться на эту страницу http://download.oracle.com/javaee/1.4/tutorial/doc/Security5.html, на которой, по моему мнению, необходимо сначала настроить аутентификацию перед входом в систему и добавить пользователя.

Пожалуйста, помогите.

Спасибо.

1 Ответ

4 голосов
/ 21 мая 2011

Использование метода HttpServletRequest#login() указывает на то, что вы используете Servlet 3.0, который является частью Java EE 6. И все же вы читаете учебное пособие по J2EE 1.4 7,5 лет.Я бы предложил отложить это пыльное учебное пособие и прочитать вместо него учебное пособие по Java EE 6 .Управляемая контейнером защита запускается здесь .

Возвращаясь к вашей конкретной проблеме, login() ( как задокументировано ) выдает исключение, когда логин неверен или когдаКонтейнер не имеет никакого определения Realm .Предполагая, что вы уверены, что имя пользователя / пароль верны, это, вероятно, будет последней причиной.Как именно это сделать, зависит от рассматриваемого сервлет-контейнера.Просто обратитесь к его документации, используя ключевое слово "Realm".Например, для Tomcat 7.0 это конфигурация Realm HOW-TO .Если у вас есть имена пользователей / пароли в базе данных SQL, вы, вероятно, захотите использовать JDBCRealm .

После того, как вы настроили Realm на уровне servletcontainerтогда вы сможете использовать метод login() так, как вы хотите.Не забудьте добавить <security-constraint> к web.xml согласно учебному руководству по Java EE 6, чтобы ограничить доступ к определенным шаблонам URL-адресов и указать URL-адрес страницы входа.

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