【发布时间】:2019-06-13 22:15:37
【问题描述】:
在 Spring Boot + Spring Security 应用程序中,我编写了自己的 AuthenticationProvider。它对另一台服务器进行身份验证,该服务器保存有关用户名及其密码的信息。
到目前为止,一切正常 - 通过在安全配置中的 formLogin() 上使用 failureUrl(String),我可以告诉人们他们使用了无效的用户名/密码组合。 Spring 还会自动将未经授权的请求重定向到登录表单。
但是,用户有可能提供了有效的用户名/密码组合,但无论如何都不允许使用该应用程序。当然,这样的用户不应该收到“错误的用户名/密码”的相同反馈,因为这会让他感到困惑。在我的AuthenticationProvider 或安全配置中有什么方法可以让我以某种方式实现这两者之间的区分吗?到目前为止,我看不到任何方法,在 AuthenticationProvider 中返回 null 会使 Spring 认为这是一个“失败”,因此只是重定向到 failureUrl(String) 中指定的路径。
【问题讨论】:
标签: java spring spring-security