【问题标题】:OAuth User Table customiseOAuth 用户表自定义
【发布时间】:2021-01-06 19:10:06
【问题描述】:
我已经在我的 Spring Boot 应用程序中实现了 Oauth2。
我的用户表如下:
所以当我击球时:
用户名和密码的验证是通过用户表完成的。
但是在我的应用程序中,我已经有另一个用户表,所以我想从上面的表中删除用户名和密码,并且只想使用我现有的表进行身份验证。有可能吗?
我的应用程序中的用户表:
表--> user_details
列:用户名、密码
在 oauth 中是否有可能,例如仅从我自己的表中进行身份验证,其余详细信息从 authdb.user 中获取?
或者我们是否可以删除已启用、accountNotExpired、..其他列?
【问题讨论】:
标签:
spring
spring-boot
oauth-2.0
oauth
spring-security-oauth2
【解决方案1】:
在 Spring Security 中,UserDetailsService 接口负责加载用户详细信息,JdbcDaoImpl 是 JDBC 的默认实现。
您需要做的就是创建一个 JdbcDaoImpl 的子类并覆盖从表 user 和表 user_details 加载用户详细信息的 loadUsersByUsername 方法。
不要忘记像这样在安全配置类中将您的子类声明为 Bean
@Configuration
class SecurityConfig extends WebSecurityConfigurerAdapter {
//other method
@Bean
@Override
public UserDetailsService userDetailsService() {
return new CustomJdbcDaoImpl();
}
}