如何包括是否为springboot用户身份验证启用了用户帐户

zbq4xfa0  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(238)

我有一个功能,为用户进行身份验证。然而,我有一个 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()!!
            )
        )

    }
k4ymrczo

k4ymrczo1#

还有另一个构造函数 org.springframework.security.core.userdetails.User 提供:

new User(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities)

第三个参数, enabled 似乎符合你的要求 userActive 领域
请记住,禁用的用户会返回 false 对于 isEnabled() 验证后进行检查。这将导致将错误委托给您的配置 AuthenticationEntryPoint ,将显示为身份验证失败。

相关问题