【发布时间】:2014-06-27 01:19:24
【问题描述】:
当开发人员想要保护他的 web 应用程序时,Spring Security 非常棒。
但是,创建帐户呢?和“忘记密码”?大多数登录页面都有这些链接以及用户名和密码字段。 Spring的默认登录页面没有这些链接……在好的情况下,它可以支持“记住我”……
Spring 是否支持创建帐户、忘记密码和更改密码的这些流程? 如果答案是肯定的,请您指点我一些文件吗?
我已经搜索了这个问题,但找不到任何东西。
谢谢!
【问题讨论】:
-
我认为答案是否定的。由于这些操作不是通用操作,因此它们因应用程序而异。 spring 如何知道您的注册表单中需要哪些字段?或者你想如何恢复密码? (通过电子邮件、短信等)
-
我明白了;但我想也许有一些通用的东西是可定制和可扩展的(就像所有其他 Spring 项目一样......)
-
实现起来并不难。创建帐户是一种基本形式。我已经在我的项目中实现了这两个并且没有任何困难。为了恢复密码,我向用户发送了一封带有 uniqueId (java.sun.com/javase/6/docs/api/java/util/UUID.html) 的电子邮件,并且我有一个控制器来检查该 ID,如果它有效(存储在我的 user_request 表中),我将用户转发到一个页面,他将在其中定义一个新密码,因为原始密码已加密。
-
@luizcarlosfx:“实施起来并不难”——但您必须确保处理好所有情况。例如如果用户尝试创建已经存在的帐户会发生什么?如果用户尝试创建已经存在但不活动的帐户会发生什么?密码策略呢? (太长/太短/多少资本等)如何将带有激活链接的电子邮件发送给用户?将收到点击链接并激活帐户的控制器呢?越来越多……有很多代码要写,我的朋友。
-
我什么都关心,我仍然说这并不难。 Spring 提供了许多很酷的特性,使其变得简单。首先使用休眠验证器来验证你的用户(检查密码大小,用户名大小和任何你想要的),检查用户名是否存在我做ajax请求检查数据库是否已经使用用户名或用户是否被禁用。验证电子邮件与恢复密码请求非常相似。我只是在我的 user_request 表中的数据库中存储了一个请求代码,并且我有专门的控制器来检查这些代码的有效性。
标签: spring authentication registration forgot-password change-password