Java EE 登录页面问题

标签 java servlets authentication

我尝试编写一个登录表单,将用户名和密码传递给 servlet 并让用户登录。

然后,在 servlet 中,我 lo

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我认为需要在登录之前先配置身份验证并添加一些用户。

请帮忙。

谢谢。

最佳答案

使用 HttpServletRequest#login() 方法表明您正在使用 Servlet 3.0,它是 Java EE 6 的一部分。然而您正在阅读 7.5 年前的 J2EE 1.4 教程。我建议把那个尘封已久的教程放在一边,阅读 Java EE 6 tutorial反而。容器管理安全启动here .

回到您的具体问题,login()当登录无效或容器根本没有定义任何 Realm 时,将 ( as documented ) 抛出异常。假设您确定用户名/密码有效,这可能是最后一个原因。具体如何做取决于所讨论的 servletcontainer。只需使用关键字“Realm”查阅其文档。例如,对于 Tomcat 7.0,这是 Realm Configuration HOW-TO .如果您在 SQL 数据库中拥有用户名/密码,您可能希望使用 JDBCRealm .

一旦您在 servletcontainer 级别配置了一个 Realm,您就可以使用 login()方法你想要的方式。不要忘记添加 <security-constraint>web.xml根据 Java EE 6 教程限制对某些 URL 模式的访问并指定登录页面的 URL。

关于Java EE 登录页面问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079469/

相关文章:

c# - 从 C# 与 google appengine 交互

java - 找不到元素 'XMLTooling' 的声明

java - 使 Gridpane 对象填满屏幕

Java文件上传非常慢

java - Spring - 将依赖项注入(inject) ServletContextListener

java - 如何从javascript调用servlet

ios - 将 Google 帐户登录集成到 iOS 应用程序中

PHP MySQL 无法跳转到第 0 行

java - 翻转存储为 byte[] 数组的图像

java - android 旋转时进度消失