您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

基本身份验证:是否可以像getRemoteUser()一样设置setRemoteUser

基本身份验证:是否可以像getRemoteUser()一样设置setRemoteUser

这不可能。如果实际上有<form>用于登录的HTML ,则应将身份验证方法从更改BASICFORM

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/error.jsp</form-error-page>
    </form-login-config>
</login-config>

您还需要确保HTML 使用用户名和密码作为预定义参数<form>提交到预定义URL 。j_security_check``j_username``j_password

<form action="j_security_check" method="post">
    <input type="text" name="j_username" />
    <input type="password" name="j_password" />
    <input type="submit" value="login" />
</form>

这样,容器将以您所需的方式设置登录名,用户名将由提供getRemoteUser()。此外,任何直接访问受限URL的未经身份验证的用户都将自动转发到登录页面。成功登录后,它将自动转发回最初请求的页面

另外,在FORMServlet 3.0兼容容器(Tomcat7,Glassfish3等)上使用身份验证方法时,您将能够通过Servlet中引入的Servlet3.0以编程方式登录用户HttpServletRequest#login()。这样可以对过程和验证进行更精细的控制。使用BASIC身份验证是不可能的。

BASIC认证是一个完全不同的事情。它显示一个带有用户名/密码输入的裸露JavaScript对话框。这不需要/使用HTML<form>或其他内容。它还将身份验证信息存储在客户端,该身份验证信息将作为每个后续请求中的请求标头发送。它不像身份验证一样在服务器端会话中存储身份验证信息FORM

其他 2022/1/1 18:21:06 有473人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶