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

Sta*_*ust 2 java authentication servlets forms-authentication

请问有谁能告诉我,如何处理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> 
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ant 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>
Run Code Online (Sandbox Code Playgroud)

提交表单时,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>
Run Code Online (Sandbox Code Playgroud)

这允许容器找到包含表单的JSP或Servlet,或者您的错误处理代码.如果您还没有,我建议您阅读Servlet规范.