当开发人员想要保护其 Web 应用程序时,Spring Security 非常有用。
但是,创建帐户呢?和“忘记密码”?大多数登录页面都有这些链接以及用户名和密码字段。 Spring的默认登录页面没有这些链接...在好的情况下,它可以支持“记住我”...
Spring 支持创建帐户、忘记密码和更改密码这些流程吗? 如果答案是肯定的,您能给我一些文档吗?
我已经搜索过这个问题,但找不到任何东西。
谢谢!
你是完全正确的。 AFAIK 没有实现这些流程的“通用”包。我前段时间搜索了很多此类代码,但一无所获。我认为 @luizcarlosfx 是对的,每个应用程序都有自己的需求,因此很难编写适合所有需求的通用内容。
编辑: 我看到诸如“实施起来并不难”之类的评论。真的。但你必须确保处理好所有情况。例如,如果用户尝试创建已存在的帐户,会发生什么情况?如果用户尝试创建已存在但不活动的帐户,会发生什么?密码策略怎么样? (太长/太短/多少大写字母等)向用户发送带有激活链接的电子邮件怎么样?你如何创建这个链接?你如何加密它?接收链接点击并激活帐户的控制器怎么样?还有越来越多...
,我向前迈出了一步,尝试编写一些能够满足大多数流程的代码 - 注册、忘记密码、更改密码等,以及足够安全的代码,以便应用程序能够毫无恐惧地使用它它很容易被黑客攻击。
我已经为此用例实现了一个JAVA项目。它是开源的,基于 Spring-Security。发布版本位于 Maven-Central 上,因此您无需编译它,而是可以将其作为项目的 maven 依赖项获取!
<dependency>
<groupId>com.ohadr</groupId>
<artifactId>authentication-flows</artifactId>
<version>1.5.0-RELEASE</version>
</dependency>
我认为它回答了你的问题...
一切都有解释(如果缺少某些内容 - 请告诉我......)
您可以
在此处找到项目的主页以及演示。 这是一个使用身份验证流程的客户端网络应用程序,带有包含所有解释的自述文件。 希望有帮助!