Java 使用spring security恢复用户名和密码

Java 使用spring security恢复用户名和密码,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我在web应用程序中使用spring安全性。 我正在恢复用户名和密码 用例: 当用户忘记密码时,他们无法登录。 如何通过spring security向spring发送请求 问题是,除非登录并进行身份验证,否则spring security不会让任何东西通过 我当前正在配置中使用以下内容: @Override public void configure(WebSecurity web) throws Exception { web.ignoring().antMatchers("/log

我在web应用程序中使用spring安全性。 我正在恢复用户名和密码

用例:

当用户忘记密码时,他们无法登录。
如何通过spring security向spring发送请求

问题是,除非登录并进行身份验证,否则spring security不会让任何东西通过

我当前正在配置中使用以下内容:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/loginrecover/**"); 
}
我认为这完全不在安全范围之内,很容易受到攻击

有没有其他方法可以实现这一点?

我将使用:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/loginrecover").permitAll()
...}
使用permitAll,您不会禁用安全过滤器。Spring安全相关功能仍将可用

使用ignore()可以完全禁用该请求路径的安全筛选器链。Spring安全功能将不可用。这是安全性为“无”的java配置这应该只用于静态资源


是的,这是类似的,你需要一个未经授权的网站。但是正确的方法是禁用访问,而不是过滤器。

我看不出这与我的代码有什么区别,因为没有formLogin或其他什么,spring security如何通过这一点来保护?过滤器提供了什么,增强了?在你的应用程序中并没有真正的区别。例如,安全功能(如requires channel、current user或calling secured methods)将不可用。好吧,在对您的问题进行一些研究之后,可能会更好,因为您可以匿名使用IS_AUTHENTICATED_。请看一看,是的,我读过这篇文章,但这种访问方式并没有给我太多帮助,在我的内心深处,我害怕应用程序的脆弱性,我想没有其他办法。未经授权的用户应始终可以访问请求密码重置的页面。当用户忘记密码时,应将其发送到密码重置页面,在该页面中输入其UID或电子邮件地址以及机密问题的答案,于是,他收到了一封电子邮件,其中包含一张过期票据的链接,该链接将让他登录并进入密码重置页面,就好像他已经登录一样。任何允许任何人(甚至用户)检索自己当前密码的系统都是不可恢复的、彻底崩溃的。@EJP“任何允许…”的系统都是如此。那么您认为解决方法应该是什么呢?@EJP这是一种逃避。我认为你评论的第二部分是想低估/贬低第一部分,我的坏消息。但无论如何,我从未打算通过邮件/手机或任何其他方式向用户发送密码,我的想法与您刚才解释的完全相同,但我担心任何知道电子邮件和/或秘密问题的人都可以更改密码并拥有完全访问权限@EJP我想到的是,通过向用户发送一封带有过期url参数的电子邮件,他们可以通过在后台编程登录来访问应用程序,作为保存。