当用户登录Web应用程序时,如何实现“保持登录状态”在大多数网站上,当用户即将提供登录系统的用户名和密码时,会出现一个“保持登录状态”的复选框。如果选中该复选框,它将使您在同一Web浏览器的所有会话中登录。如何在Java EE中实现相同的功能?我正在使用基于FORM的容器管理身份验证和JSF登录页面。<security-constraint>
<display-name>Student</display-name>
<web-resource-collection>
<web-resource-name>CentralFeed</web-resource-name>
<description/>
<url-pattern>/CentralFeed.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>STUDENT</role-name>
<role-name>ADMINISTRATOR</role-name>
</auth-constraint></security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbc-realm-scholar</realm-name>
<form-login-config>
<form-login-page>/index.jsf</form-login-page>
<form-error-page>/LoginError.jsf</form-error-page>
</form-login-config></login-config><security-role>
<description>Admin who has ultimate power over everything</description>
<role-name>ADMINISTRATOR</role-name></security-role> <security-role>
<description>Participants of the social networking Bridgeye.com</description>
<role-name>STUDENT</role-name></security-role>
3 回答

江户川乱折腾
TA贡献1851条经验 获得超5个赞
通常这样做是这样的:
当您登录用户时,您还在客户端上设置了一个cookie(并将cookie值存储在数据库中),在一段时间后(通常为1-2周)到期。
当有新请求进入时,检查某个cookie是否存在,如果是,请查看数据库以查看它是否与某个帐户匹配。如果匹配,您将“松散地”登录该帐户。当我松散地说我的意思是你只让那个会话读取一些信息而不是写信息。您需要请求密码才能允许写入选项。
这就是全部。诀窍是确保“松散”登录不能对客户造成很大伤害。这有点保护用户免于抓住他记住我的cookie并试图以他身份登录的人。
添加回答
举报
0/150
提交
取消