From 4ef2de7aa7fc24ee19020330e781bae0b51b956c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 30 十二月 2024 10:23:58 +0800
Subject: [PATCH] 小程序

---
 applet/src/main/java/com/jilongda/applet/security/AuthenticationProvider.java |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/applet/src/main/java/com/jilongda/applet/security/AuthenticationProvider.java b/applet/src/main/java/com/jilongda/applet/security/AuthenticationProvider.java
index f8e8011..d44a5cf 100644
--- a/applet/src/main/java/com/jilongda/applet/security/AuthenticationProvider.java
+++ b/applet/src/main/java/com/jilongda/applet/security/AuthenticationProvider.java
@@ -42,24 +42,24 @@
         // [1] 获取 username 和 password
         String userName = (String) authentication.getPrincipal();
         String password = (String) authentication.getCredentials();
+        log.info("用户数据查询======================================");
         // [2] 使用用户名从数据库读取用户信息
         SecurityUserDetails userDetails = this.loadUserDetailsService.loadUserByUsername(userName);
+        log.info("用户数据查询======================================:{}", userDetails);
         // 判断是否被封禁
-//        userDetails.setEnabled(userDetails.getStatus());
+//        userDetails.setEnabled(userDetails.getState());
         // [3] 检查用户信息
         if (Objects.isNull(userDetails)) {
             throw new UsernameNotFoundException("用户账户不存在");
+//        } else if (userDetails.isEnabled() || userDetails.getState()) {
+//            throw new DisabledException(userName + " 用户已被禁用或删除,请联系管理员");
+        } else if (!userDetails.isAccountNonExpired()) {
+            throw new AccountExpiredException(userName + " 账号已过期");
+        } else if (!userDetails.isAccountNonLocked()) {
+            throw new LockedException(userName + " 账号已被锁定");
+        } else if (!userDetails.isCredentialsNonExpired()) {
+            throw new LockedException(userName + " 凭证已过期");
         }
-        else if (userDetails.getState()) {
-            throw new DisabledException("用户已被禁用或删除,请联系管理员");
-        }
-//        else if (!userDetails.isAccountNonExpired()) {
-//            throw new AccountExpiredException(userName + " 账号已过期");
-//        } else if (!userDetails.isAccountNonLocked()) {
-//            throw new LockedException(userName + " 账号已被锁定");
-//        } else if (!userDetails.isCredentialsNonExpired()) {
-//            throw new LockedException(userName + " 凭证已过期");
-//        }
         // [4] 数据库用户的密码,一般都是加密过的
         String encryptedPassword = userDetails.getPassword();
 
@@ -71,7 +71,7 @@
         // 把 userDetails 作为 principal 的好处是可以放自定义的 UserDetails,这样可以存储更多有用的信息,而不只是 username,
         // 默认只有 username,这里的密码使用数据库中保存的密码,而不是用户输入的明文密码,否则就暴露了密码的明文
         // 不暴露密码
-        userDetails.setPassword(null);
+//        userDetails.setPassword(null);
         UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken(userDetails.getUsername(), null, null);
         // 设置详情
         //String userInfo = JsonUtils.toJsonString(userDetails);

--
Gitblit v1.7.1