如何包括是不是为 Spring Boot 用户身份验证启用用户帐户
Posted
技术标签:
【中文标题】如何包括是不是为 Spring Boot 用户身份验证启用用户帐户【英文标题】:How to include include whether users account enabled for Springboot User authentication如何包括是否为 Spring Boot 用户身份验证启用用户帐户 【发布时间】:2021-08-13 04:27:18 【问题描述】:我有这个为用户进行身份验证的功能。但是,我有一个 userActive
作为我想要包含在身份验证中的字段。所以看看用户的账号是否启用。
userActive
是Boolean
我怎么能做到这一点?
override fun loadUserByUsername(username: String?): UserDetails
var user: User = userRepository.findByEmail(username!!)
if (user == null)
throw UsernameNotFoundException("Invalid username or password.")
return org.springframework.security.core.userdetails.User(
user.getEmail(), user.getPassword(), mapRolesToAuthorities(
user.getRoles()!!
)
)
【问题讨论】:
【参考方案1】:org.springframework.security.core.userdetails.User
的另一个构造函数可用:
new User(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities)
第三个参数enabled
似乎对应于您的userActive
字段。
请记住,禁用的用户在身份验证后返回false
以进行isEnabled()
检查。这将导致错误委派给您配置的AuthenticationEntryPoint
,这将显示为身份验证失败。
【讨论】:
当然可以。介意接受答案吗? :D以上是关于如何包括是不是为 Spring Boot 用户身份验证启用用户帐户的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 spring security 和 spring boot 对 Google 用户进行身份验证,将 mongoDB 作为存储库?
如何在 Debian 上以非 root 用户身份运行 Spring Boot 应用程序?
如何在 Spring Boot + Spring Security 中添加一些身份验证步骤?
Spring Boot Security - 如果用户未通过 Oauth2 进行身份验证,如何禁用对 swagger ui 页面的端点的访问
使用 Spring Boot OAuth2 针对 Google 进行身份验证时如何将 google 用户电子邮件发送到白名单用户