mirror of https://github.com/elunez/eladmin
修复不存在账号登录时,userService.findByName抛出异常,而loadUserByUsername未将其捕获处理的bug
parent
1f856a1d4b
commit
c4ddacc77d
|
@ -1,11 +1,13 @@
|
|||
package me.zhengjie.modules.security.service;
|
||||
|
||||
import me.zhengjie.exception.BadRequestException;
|
||||
import me.zhengjie.exception.EntityNotFoundException;
|
||||
import me.zhengjie.modules.security.service.dto.JwtUserDto;
|
||||
import me.zhengjie.modules.system.service.RoleService;
|
||||
import me.zhengjie.modules.system.service.UserService;
|
||||
import me.zhengjie.modules.system.service.dto.*;
|
||||
import me.zhengjie.modules.system.service.dto.UserDto;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
@ -28,10 +30,16 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public JwtUserDto loadUserByUsername(String username){
|
||||
UserDto user = userService.findByName(username);
|
||||
public JwtUserDto loadUserByUsername(String username) {
|
||||
UserDto user;
|
||||
try {
|
||||
user = userService.findByName(username);
|
||||
} catch (EntityNotFoundException e) {
|
||||
// SpringSecurity会自动转换UsernameNotFoundException为BadCredentialsException
|
||||
throw new UsernameNotFoundException("", e);
|
||||
}
|
||||
if (user == null) {
|
||||
throw new BadRequestException("账号不存在");
|
||||
throw new UsernameNotFoundException("");
|
||||
} else {
|
||||
if (!user.getEnabled()) {
|
||||
throw new BadRequestException("账号未激活");
|
||||
|
|
Loading…
Reference in New Issue