Проблема со страницей входа в Java EE

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

Затем в сервлете я

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 ответ

Решение

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

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

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

Другие вопросы по тегам