来自自定义表的 Spring Security 身份验证

Posted

技术标签:

【中文标题】来自自定义表的 Spring Security 身份验证【英文标题】:Spring Security authentication from custom tables 【发布时间】:2016-02-09 19:10:58 【问题描述】:

我正在研究 Spring Security,它有很好的功能,但我的要求有点不同。 我有一张桌子: 1. Employee(字段 ename,epassword)

我想从这个表中验证用户,但使用 spring security。 我知道 Spring Security 具有启用和 ROLE 的某种功能,但无法了解如何从我的表中获取身份验证。 我已经看到了一些示例并 google 某些链接,但一些好的链接会更有帮助。

【问题讨论】:

【参考方案1】:

您可以有一个自定义的UserDetailsService 并为loadUserByUsername(String username) 提供一个实现,以从数据库中加载用户信息。之后,您可以自定义实现AuthenticationProvider,它使用您的自定义UserDetailsService 来验证用户。 Spring security 也有相同的实现来从表中对用户进行身份验证,但对表结构等有一些限制。你可以看看DaoAuthenticationProvider 来实现你自己的AuthenticationProviderJdbcDaoImpl 来拥有你的自定义UserDetailsService

【讨论】:

你想说“你可以有自定义...”而不是“自定义”吗?

以上是关于来自自定义表的 Spring Security 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security - 来自 JWT 的自定义主体

使用 OAuth2 自定义来自 Spring Security 的身份验证错误

如何在spring security中为来自两个不同表的不同用户配置身份验证?

必须指定 Spring Security authenticationmanager - 用于自定义过滤器

使用 Java Config 的 Spring Security 自定义身份验证过滤器

Spring Security 4 2FA