From d97c26f44fe7faa9ab2a2ec3b73d7b0f49140d27 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期三, 29 九月 2021 13:15:03 +0800
Subject: [PATCH] bug修复
---
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java | 33 +++++++++++++++++++--------------
1 files changed, 19 insertions(+), 14 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
index 23cf075..c358831 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
@@ -1,8 +1,11 @@
package com.panzhihua.auth.handel;
-import com.panzhihua.common.model.vos.LoginUserInfoVO;
-import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.service.user.UserService;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.annotation.Resource;
+
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.LockedException;
@@ -16,10 +19,9 @@
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
-import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
/**
* @program: springcloud_k8s_panzhihuazhihuishequ
@@ -31,19 +33,20 @@
public class UserAuthenticationProvider implements AuthenticationProvider {
@Resource
private UserService userService;
+
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
// 获取表单输入中返回的用户名
- String userName = (String) authentication.getPrincipal();
+ String userName = (String)authentication.getPrincipal();
// 获取表单中输入的密码
- String password = (String) authentication.getCredentials();
+ String password = (String)authentication.getCredentials();
// 查询用户是否存在
R<LoginUserInfoVO> r = userService.getUserInfo(userName);
- if (r.getCode()!=200) {
- throw new UsernameNotFoundException("用户名不存在");
+ if (r.getCode() != 200) {
+ throw new UsernameNotFoundException("该账号不存在");
}
LoginUserInfoVO loginUserInfoVO = r.getData();
- List<GrantedAuthority> grantedAuthorityList=new ArrayList<>();
+ List<GrantedAuthority> grantedAuthorityList = new ArrayList<>();
Set<String> roles = loginUserInfoVO.getRoles();
if (!ObjectUtils.isEmpty(roles)) {
roles.forEach(s -> {
@@ -51,16 +54,18 @@
});
}
if (ObjectUtils.isEmpty(loginUserInfoVO.getAccount())) {
- throw new UsernameNotFoundException("用户名不存在");
+ throw new UsernameNotFoundException("该账号不存在");
}
// 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
throw new BadCredentialsException("密码不正确");
}
// 还可以加一些其他信息的判断,比如用户账号已停用等判断
- if (loginUserInfoVO.getStatus().intValue()==2) {
+ if (loginUserInfoVO.getStatus().intValue() == 2) {
throw new LockedException("该用户已被禁用");
}
+ // 维护最后登录时间
+ userService.putUserLastLoginTime(loginUserInfoVO.getUserId());
return new UsernamePasswordAuthenticationToken(loginUserInfoVO, password, grantedAuthorityList);
}
--
Gitblit v1.7.1