SpringSecurity 用户帐号已被锁定的问题及解决方法

 更新时间:2023年12月07日 11:48:27   作者:宣布无人罪  
这篇文章主要介绍了SpringSecurity 用户帐号已被锁定,本文给大家分享问题原因及解决方式,需要的朋友可以参考下

SpringSecurity 用户帐号已被锁定

01 异常发生场景

  • 当我自定义登录接口时
  • 以下是我的UserDetailsService和UserDetails接口的实现类
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
    @Autowired
    private MsUserServiceImp msUserServiceImp;
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        //使用mybatis-plus,获取到账号密码数据
        LambdaQueryWrapper<MsUser> qw=new LambdaQueryWrapper<>();
        qw.eq(MsUser::getUsername,username);
        MsUser user = msUserServiceImp.getOne(qw);
        LoginUser loginUser = new LoginUser();
        loginUser.setMsUser(user);
        return loginUser;
    }
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginUser implements UserDetails {
    private MsUser msUser;
    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return null;
    }
    @Override
    public String getPassword() {
        return msUser.getPassword();
    }
    @Override
    public String getUsername() {
        return msUser.getUsername();
    }
    @Override
    public boolean isAccountNonExpired() {
        return false;
    }
    @Override
    public boolean isAccountNonLocked() {
        return false;
    }
    @Override
    public boolean isCredentialsNonExpired() {
        return false;
    }
    @Override
    public boolean isEnabled() {
        return false;
    }
}

02 问题发生的原因

重写的UserDetails类默认方法返回值为false

  • 1.isAccountNonExpired()

判断帐户是否过期

  • 2.isAccountNonLocked()

判断帐户是否锁定

  • 3.isCredentialsNonExpired()

凭据是否过期,就是登录时间到没到

  • 4.isEnabled()

是否启动

03 解决方式

将UserDetails接口的实现类里上述方法,也就是所有方法设置为true就可以避免被锁定了

到此这篇关于SpringSecurity 用户帐号已被锁定的文章就介绍到这了,更多相关SpringSecurity 帐号锁定内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 全面了解java byte数组与文件读写

    全面了解java byte数组与文件读写

    下面小编就为大家带来一篇全面了解java byte数组与文件读写。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • SpringCloud之Feign远程接口映射的实现

    SpringCloud之Feign远程接口映射的实现

    这篇文章主要介绍了SpringCloud之Feign远程接口映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • springboot websocket集群(stomp协议)连接时候传递参数

    springboot websocket集群(stomp协议)连接时候传递参数

    这篇文章主要介绍了springboot websocket集群(stomp协议)连接时候传递参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • struts2框架的登录制作图文教程

    struts2框架的登录制作图文教程

    下面小编就为大家带来一篇struts2框架的登录制作图文教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    这篇文章主要基于Servlet+JSP+JavaBean开发模式实现JavaWeb用户登录注册功能实例代码,非常实用,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-05-05
  • 手把手教你如何搭建SpringBoot+Vue前后端分离

    手把手教你如何搭建SpringBoot+Vue前后端分离

    这篇文章主要介绍了手把手教你如何搭建SpringBoot+Vue前后端分离,前后端分离是目前开发中常用的开发模式,达成充分解耦,需要的朋友可以参考下
    2023-03-03
  • Default Methods实例解析

    Default Methods实例解析

    这篇文章主要介绍了Default Methods实例解析,介绍了默认方法的相关问题,以及与普通方法的区别,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • MyBatis的SUM映射问题及解决

    MyBatis的SUM映射问题及解决

    这篇文章主要介绍了MyBatis的SUM映射问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • jackson在springboot中的使用方式-自定义参数转换器

    jackson在springboot中的使用方式-自定义参数转换器

    这篇文章主要介绍了jackson在springboot中的使用方式-自定义参数转换器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • java多线程之wait(),notify(),notifyAll()的详解分析

    java多线程之wait(),notify(),notifyAll()的详解分析

    本篇文章是对java多线程 wait(),notify(),notifyAll()进行了详细的分析介绍,需要的朋友参考下
    2013-06-06

最新评论