有人可以告诉我,如何处理java中基于表单的身份验证中的 j_security_check servlet?
我是否必须在web-xml文件中使用 j_security_check 名称映射servlet类,如:
<servlet>
<servlet-name>Anyname</servlet-name>
<servlet-class>Anyclass</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>Anyname</servlet-name>
<url-pattern>/j_security_check</url-pattern>
</servlet-mapping>
如果我输入用户名和密码,然后点击提交,那么带有 j_security_check 名称的servlet将如何处理这些信息?该servlet将如何验证那些输入的用户名和密码,并获取资源(如果是身份验证),然后授权成功,否则将出现错误页面。 j_security_check servlet将如何做到这一点?
答案 0 :(得分:5)
我们的想法是编写一个JSP或Servlet,它提供一个包含以下字段和操作的表单:
<form action="j_security_check" method="post">
<input type="text" name="j_username"/>
<input type="password" name="j_password"/>
<input type="submit"/>
</form>
提交表单时,servlet容器使用您定义的机制(例如JAAS)检查您的凭据。在您的web.xml中,设置以下内容:
<login-config>
<form-login-check>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-check>
</login-config>
这允许容器找到包含表单的JSP或Servlet,或者您的错误处理代码。如果您还没有,我建议您阅读Servlet Specification。
答案 1 :(得分:1)
您无需将j_security_check映射到任何内容。这由Application Server管理。
但是,您需要添加用户名。角色和领域信息。
每个应用程序服务器都有自己的方法来验证这些信息。
看到这个 -
1)http://www.student.nada.kth.se/~d95-cro/j2eetutorial14/doc/Security5.html#wp303355和
2)http://docs.sun.com/app/docs/doc/819-3669/bncby?a=view