繁体   English   中英

Java中基于表单的身份验证的混乱

[英]Confusion in form based authentication in java

谁能告诉我,如何处理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> 

如果输入用户名和密码,然后单击Submit ,那么具有j_security_check名称的servlet将如何处理这些信息? 该servlet将如何验证那些输入的用户名和密码,并获取资源(如果进行身份验证,然后授权成功),否则将显示错误页面。 j_security_check servlet将如何做到这一点?

这个想法是您编写一个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

您不需要将j_security_check映射到任何内容。 这由应用服务器管理。
但是,您不需要添加用户名。 角色和领域信息。
每个应用程序服务器都有自己的身份验证信息的方式。

看到这个-
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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM