【发布时间】:2015-10-07 19:09:12
【问题描述】:
我在我的 Tomcat 实例中实现了 JDBC 领域表单身份验证。用户名及其角色存储在数据库表中,管理员应为用户分配永久密码。 是否可以在第一次尝试登录时要求用户更改密码,以便密码不是管理员规定的,而是可以由用户自己生成?
【问题讨论】:
我在我的 Tomcat 实例中实现了 JDBC 领域表单身份验证。用户名及其角色存储在数据库表中,管理员应为用户分配永久密码。 是否可以在第一次尝试登录时要求用户更改密码,以便密码不是管理员规定的,而是可以由用户自己生成?
【问题讨论】:
我想你必须自己实现这个。例如,您可以在用户表中添加一个额外的列isPassWordSet,默认值为false。然后,用户第一次登录后,使用管理员提供的密码,重定向到他或她必须提供自己密码的页面,只允许isPasswordSet=true 的用户连接到应用程序的其余部分。一旦用户完成此步骤,如果提供的密码被认为是有效的,则将isPasswordSet 设置为true 并且可以继续。
【讨论】:
HttpServletResponse.sendRedirect( url ),但我没有找到如何在自定义领域实现中获取 HttpServletResponse.. 请帮助..
HttpServletRequest.login(name, pass) 方法。另外,除了必要的用户角色之外,我还为他添加了一个“新人”角色,这样我就可以看到他的isUserinRole("newcomer") 是true 还是false,如果true 我会做HttpServletRequest.sendRedirect( ChangePassUrl ) 他到更改密码,然后删除他的“新人”角色。这样可以减少对数据库的访问。
newcomer。我假设您在过滤器中进行重定向以拒绝 newcomer 访问您的应用程序的其余部分?