From 51afd91af98ce2962a59eaa4a8718c38bec4950b Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期五, 10 六月 2022 15:11:44 +0800 Subject: [PATCH] bug修改 --- springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java | 48 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 34 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 6769438..1cbc866 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,21 @@ 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.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import javax.annotation.Resource; +import javax.crypto.BadPaddingException; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; + +import com.panzhihua.auth.config.MyAESUtil; +import com.panzhihua.common.model.helper.AESUtil; +import com.panzhihua.common.utlis.AES; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.LockedException; @@ -16,10 +29,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 +43,27 @@ public class UserAuthenticationProvider implements AuthenticationProvider { @Resource private UserService userService; + @Resource + private RedisTemplate redisTemplate; + @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { // 获取表单输入中返回的用户名 - String userName = (String) authentication.getPrincipal(); - // 获取表单中输入的密码 - String password = (String) authentication.getCredentials(); + String userName = (String)authentication.getPrincipal(); + String password =(String)authentication.getCredentials(); + try { + password = MyAESUtil.Decrypt((String)authentication.getCredentials(),"Ryo7M3n8loC5Abcd"); + } catch (Exception e) { + e.printStackTrace(); + } + // 查询用户是否存在 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 -> { @@ -58,10 +78,10 @@ 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