Проблема со страницей входа в Java EE
Я пытаюсь закодировать форму входа в систему, которая передает имя пользователя и пароль сервлету и позволяет пользователю войти в систему.
Затем в сервлете я
request.login(username, password);
но он выдает исключение, которое не смогло аутентифицировать пользователя.
String authType = request.getAuthType();
if(authType != null) {
request.login(username, password);
}
- Интересно, как кодировать простую страницу входа.
- Каковы виды использования request.authenticate(response);
Я пытаюсь сделать это, и появляется экран, который больше не может быть продолжен.
- Я пытаюсь сослаться на эту страницу 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 страницы входа в систему.