From c4ddacc77dd335d387cbe5e5205fafa9ba2472c4 Mon Sep 17 00:00:00 2001 From: jiangmf Date: Thu, 9 Apr 2020 17:08:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E7=99=BB=E5=BD=95=E6=97=B6=EF=BC=8CuserServi?= =?UTF-8?q?ce.findByName=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=EF=BC=8C?= =?UTF-8?q?=E8=80=8CloadUserByUsername=E6=9C=AA=E5=B0=86=E5=85=B6=E6=8D=95?= =?UTF-8?q?=E8=8E=B7=E5=A4=84=E7=90=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/service/UserDetailsServiceImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java index 6cb404eb..eeafe833 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/security/service/UserDetailsServiceImpl.java @@ -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("账号未激活");