【发布时间】:2015-07-25 20:00:57
【问题描述】:
我在我的 Web 应用程序中使用 Spring Security。 我正处于恢复用户名和密码的阶段。
用例:
当用户忘记他们的密码时,他们将无法登录。
如何通过spring security向spring发送请求?
问题是 spring security 不会让任何事情通过,除非 logged in 和 authenticated。
我目前在我的配置中使用以下内容:
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/loginrecover/**");
}
我认为这完全超出了安全范围并且很容易受到攻击。
还有其他方法可以实现吗?
【问题讨论】:
-
我认为没有别的办法。总是会出现在未经授权的用户应该有权请求密码重置的页面。
-
当用户忘记他的密码时,他应该被发送到一个密码重置页面,在那里他输入他的 UID 或电子邮件地址和一个秘密问题的答案,然后通过电子邮件向他发送一个包含过期票证的链接这将使他登录并带他进入密码重置页面,就像他已经登录一样。任何允许任何人,甚至是用户,检索他自己当前密码的系统都是不可挽回的,完全被破坏了。
-
@EJP "任何允许...的系统"那么您认为解决方法应该是什么?
-
@EJP 那是一次逃跑。 . .我认为您评论的第二部分打算低估/贬低第一部分,我的错。但无论如何,我从来没有打算通过邮件/手机或任何其他方式向用户发送密码,我想到的和你刚才解释的完全一样,但我担心任何知道电子邮件和/或秘密的人问题可以更改密码并拥有完全访问权限。 . .
-
@EJP 我的想法是通过向用户发送一封带有过期 url 参数的电子邮件,他们可以通过后台程序登录来访问应用程序作为保存。
标签: java spring spring-mvc spring-security