如何在 Spring 身份验证管理器之前执行自定义处理程序

Posted

技术标签:

【中文标题】如何在 Spring 身份验证管理器之前执行自定义处理程序【英文标题】:How to execute custom handler before Spring authentication manager 【发布时间】:2013-11-06 04:57:11 【问题描述】:

我想知道是否可以在 spring 身份验证管理器之前执行自定义处理程序。我想在用户访问系统之前验证用户的许可证。最初我编写自定义过滤器并在调用身份验证管理器之前执行它,但在这种情况下,他将无法访问一些资源,因为他没有经过身份验证,但后来我将我的代码移动到 spring 的 sucessHandler 工作正常,除了它有一些安全问题,例如在多个选项卡中打开会失败。

非常感谢任何帮助。

谢谢, 布里杰什

【问题讨论】:

【参考方案1】:

我想你要找的是添加一个Spring AuthenticationProvider. 简而言之,一个AuthenticationManager 有一个AuthenticationProviders 的列表,每一个都是按顺序查询的。 Multiple Authentication Providers in Spring Security 的问答对此有很好的解释。 Spring documentation 还解释了各种组件如何组合在一起。

【讨论】:

以上是关于如何在 Spring 身份验证管理器之前执行自定义处理程序的主要内容,如果未能解决你的问题,请参考以下文章

Spring 社交登录和 Spring Security 自定义身份验证管理器

如何使用 Windows 身份验证并注册自定义身份验证管理器

具有 Spring Security 和 Java 配置的自定义身份验证管理器

如何在 Wildfly 中提供自定义身份验证/授权管理器

如何在 webflux 中实现自定义身份验证管理器时对未经授权的请求响应自定义 json 正文

春季安全。自定义身份验证管理器