From 09e41d546b030b47661877d4b8141c88584d7598 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期五, 24 九月 2021 16:03:52 +0800
Subject: [PATCH] Merge branch 'test' into 'four_member'
---
springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 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 6a1ecf8..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) {
+ 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 -> {
@@ -55,13 +58,14 @@
}
// 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
-// throw new RuntimeException("顶顶顶顶");
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