From 367679982d6af780143a2fea5cb557f2cc674ba0 Mon Sep 17 00:00:00 2001
From: "pref_mail@163.com" <123456>
Date: Tue, 1 Aug 2023 12:33:18 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E7=9A=84?=
=?UTF-8?q?=E8=B4=A6=E5=8F=B7=E7=A6=81=E7=94=A8=E6=97=B6=E9=97=B4=EF=BC=8C?=
=?UTF-8?q?=E9=80=9A=E8=BF=87=E7=A6=81=E7=94=A8=E6=97=B6=E9=97=B4=E5=AF=B9?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E8=BF=9B=E8=A1=8C=E8=B4=A6=E5=8F=B7=E7=9A=84?=
=?UTF-8?q?=E9=99=90=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../org/springblade/auth/service/BladeUserDetails.java | 2 ++
.../auth/service/BladeUserDetailsServiceImpl.java | 7 +++++++
.../main/java/org/springblade/auth/utils/TokenUtil.java | 1 +
.../src/main/java/org/springblade/system/entity/User.java | 5 +++++
.../main/java/org/springblade/system/mapper/UserMapper.xml | 1 +
5 files changed, 16 insertions(+)
diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetails.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetails.java
index 979a7c85..6a49fc24 100644
--- a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetails.java
+++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetails.java
@@ -80,6 +80,8 @@ public class BladeUserDetails extends User {
*/
private final Kv detail;
+
+
public BladeUserDetails(Long userId, String tenantId, String oauthId, String name, String realName, String deptId, String postId, String roleId, String roleName, String avatar, String username, String password, Kv detail, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection extends GrantedAuthority> authorities) {
super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
this.userId = userId;
diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
index ad9bb89d..8471306e 100644
--- a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
+++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java
@@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
+import java.util.Date;
import java.util.List;
/**
@@ -147,6 +148,12 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService {
}
user.setRoleId(headerRole);
}
+ // 判断账号的停用时间
+ if(Func.isNotEmpty(user.getDownTime()) && user.getDownTime().getTime() < new Date().getTime()){
+
+ throw new UserDeniedAuthorizationException(TokenUtil.ACCOUNT_DISABLE);
+ }
+
// 成功则清除登录错误次数
delFailCount(tenantId, username);
return new BladeUserDetails(user.getId(),
diff --git a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java
index b3d392e9..32864656 100644
--- a/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java
+++ b/blade-auth/src/main/java/org/springblade/auth/utils/TokenUtil.java
@@ -79,6 +79,7 @@ public class TokenUtil {
public final static String PASSWORD_KEY = "password";
public final static String GRANT_TYPE_KEY = "grant_type";
public final static String REFRESH_TOKEN_KEY = "refresh_token";
+ public final static String ACCOUNT_DISABLE = "当前账号已被禁用,请联系管理员";
private static BladeTenantProperties tenantProperties;
diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/entity/User.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/entity/User.java
index ff40145a..28bf6762 100644
--- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/entity/User.java
+++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/entity/User.java
@@ -92,5 +92,10 @@ public class User extends TenantEntity {
*/
private String postId;
+ /**
+ * 账号停用时间
+ */
+ private Date downTime;
+
}
diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml
index f81872d9..fecb580e 100644
--- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml
+++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml
@@ -25,6 +25,7 @@
+