SpringSecurity?用戶帳號(hào)已被鎖定的問(wèn)題及解決方法
SpringSecurity 用戶帳號(hào)已被鎖定
01 異常發(fā)生場(chǎng)景
- 當(dāng)我自定義登錄接口時(shí)
- 以下是我的UserDetailsService和UserDetails接口的實(shí)現(xiàn)類(lèi)
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private MsUserServiceImp msUserServiceImp;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//使用mybatis-plus,獲取到賬號(hào)密碼數(shù)據(jù)
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 問(wèn)題發(fā)生的原因
重寫(xiě)的UserDetails類(lèi)默認(rèn)方法返回值為false
- 1.isAccountNonExpired()
判斷帳戶是否過(guò)期
- 2.isAccountNonLocked()
判斷帳戶是否鎖定
- 3.isCredentialsNonExpired()
憑據(jù)是否過(guò)期,就是登錄時(shí)間到?jīng)]到
- 4.isEnabled()
是否啟動(dòng)
03 解決方式
將UserDetails接口的實(shí)現(xiàn)類(lèi)里上述方法,也就是所有方法設(shè)置為true就可以避免被鎖定了
到此這篇關(guān)于SpringSecurity 用戶帳號(hào)已被鎖定的文章就介紹到這了,更多相關(guān)SpringSecurity 帳號(hào)鎖定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的踩坑記錄
在某些情況下,需要在執(zhí)行新增后,需要獲取到新增行的id,這篇文章主要給大家介紹了關(guān)于Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
SpringBoot+Spring Security無(wú)法實(shí)現(xiàn)跨域的解決方案
這篇文章主要介紹了SpringBoot+Spring Security無(wú)法實(shí)現(xiàn)跨域的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java服務(wù)實(shí)現(xiàn)開(kāi)啟Debug遠(yuǎn)程調(diào)試
文章介紹如何通過(guò)JVM參數(shù)開(kāi)啟Java服務(wù)遠(yuǎn)程調(diào)試,便于在線上排查問(wèn)題,在IDEA中配置客戶端連接,實(shí)現(xiàn)無(wú)需頻繁部署的調(diào)試,提升效率2025-09-09
java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法
今天小編就為大家分享一篇java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
IntelliJ IDEA2019實(shí)現(xiàn)Web項(xiàng)目創(chuàng)建示例
這篇文章主要介紹了IntelliJ IDEA2019實(shí)現(xiàn)Web項(xiàng)目創(chuàng)建示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

