Java EE登录页面问题
我尝试编写一个登录表单,将用户名和密码传递给servlet并让用户登录。
然后,在servlet中,我
request.login(username, password);
但它抛出了无法validation用户身份的exception。
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 ,我认为在登录之前需要首先配置身份validation并添加一些用户。
请帮忙。
谢谢。
使用HttpServletRequest#login()
方法表明您使用的是Servlet 3.0,它是Java EE 6的一部分。但您正在阅读一本有7。5年历史的J2EE 1.4教程。 我建议把那个尘土飞扬的教程放在一边,然后阅读Java EE 6教程 。 容器管理安全从这里开始。
回到你的具体问题, login()
将( 如文件所述 )在登录无效或容器根本没有任何Realm定义时抛出exception。 假设您确定用户名/密码有效,则可能是最后一个原因。 如何做到这完全取决于所讨论的servletcontainer。 只需使用关键字“Realm”查阅其文档即可。 例如,对于Tomcat 7.0,它是Realm Configuration HOW-TO 。 如果在SQL数据库中有用户名/密码,则可能需要使用JDBCRealm 。
一旦在servletcontainer级别配置了Realm ,那么您将能够以您想要的方式使用login()
方法。 不要忘记根据Java EE 6教程向web.xml
添加
,以限制对某些URL模式的访问并指定登录页面的URL。