Skip to content

Commit fcf78a4

Browse files
authored
Merge pull request #43 from zlt2000/dev
Dev
2 parents f91378d + 4eed927 commit fcf78a4

File tree

77 files changed

+467
-103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+467
-103
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# zlt-microservices-platform
22

33
<p align="center">
4-
<img src="https://img.shields.io/badge/Version-5.3.0-critical" alt="Downloads"/>
5-
<img src="https://img.shields.io/badge/Spring%20Boot-2.5.13-blue" alt="Downloads"/>
4+
<img src="https://img.shields.io/badge/Version-5.4.0-critical" alt="Downloads"/>
5+
<img src="https://img.shields.io/badge/Spring%20Boot-2.5.14-blue" alt="Downloads"/>
66
<img src="https://img.shields.io/badge/Spring%20Cloud-2020.0.5-blue" alt="Downloads"/>
77
<img src="https://img.shields.io/badge/Spring%20Cloud%20Alibaba-2021.1-blue" alt="Downloads"/>
88
<img src="https://img.shields.io/badge/Elasticsearch-7.x-brightgreen" alt="Downloads"/>

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.zlt</groupId>
77
<artifactId>central-platform</artifactId>
8-
<version>5.3.0</version>
8+
<version>5.4.0</version>
99
<packaging>pom</packaging>
1010

1111
<properties>
@@ -14,7 +14,7 @@
1414
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1515
<java.version>8</java.version>
1616
<spring-cloud-alibaba-dependencies.version>2021.1</spring-cloud-alibaba-dependencies.version>
17-
<spring-boot-dependencies.version>2.5.13</spring-boot-dependencies.version>
17+
<spring-boot-dependencies.version>2.5.14</spring-boot-dependencies.version>
1818
<spring-cloud-dependencies.version>2020.0.5</spring-cloud-dependencies.version>
1919
<commons-collections4.version>4.4</commons-collections4.version>
2020
<swagger.butler.version>2.0.1</swagger.butler.version>

zlt-business/code-generator/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-business</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>code-generator</artifactId>
1010

zlt-business/file-center/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-business</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>file-center</artifactId>
1010
<description>文件中心</description>

zlt-business/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>central-platform</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>zlt-business</artifactId>
1010
<description>业务中心</description>

zlt-business/search-center/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-business</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>search-center</artifactId>
1010
<description>搜索中心</description>

zlt-business/search-center/search-client/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>search-center</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>search-client</artifactId>
1010
<description>搜索中心客户端</description>

zlt-business/search-center/search-server/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>search-center</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>search-server</artifactId>
1010
<description>搜索中心服务端</description>

zlt-business/user-center/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-business</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>user-center</artifactId>
1010
<description>用户中心</description>

zlt-commons/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>central-platform</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>zlt-commons</artifactId>
1010
<description>通用组件</description>

zlt-commons/zlt-auth-client-spring-boot-starter/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.zlt</groupId>
77
<artifactId>zlt-commons</artifactId>
8-
<version>5.3.0</version>
8+
<version>5.4.0</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111
<packaging>jar</packaging>

zlt-commons/zlt-auth-client-spring-boot-starter/src/main/java/com/central/oauth2/common/util/AuthUtils.java

+36-6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
import com.central.common.constant.CommonConstant;
44
import com.central.common.constant.SecurityConstants;
5+
import com.central.common.context.LoginUserContextHolder;
56
import com.central.common.model.SysUser;
67
import com.central.common.utils.SpringUtil;
78
import com.central.oauth2.common.token.CustomWebAuthenticationDetails;
89
import lombok.extern.slf4j.Slf4j;
10+
import org.springframework.security.authentication.AnonymousAuthenticationToken;
911
import org.springframework.security.core.Authentication;
12+
import org.springframework.security.core.context.SecurityContextHolder;
1013
import org.springframework.security.oauth2.common.OAuth2AccessToken;
1114
import org.springframework.security.oauth2.common.exceptions.InvalidTokenException;
1215
import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
@@ -15,15 +18,16 @@
1518

1619
import javax.servlet.http.HttpServletRequest;
1720
import java.nio.charset.StandardCharsets;
18-
import java.util.Base64;
19-
import java.util.Enumeration;
20-
import java.util.Map;
21+
import java.util.*;
2122

2223
/**
2324
* 认证授权相关工具类
2425
*
2526
* @author zlt
2627
* @date 2018/5/13
28+
* <p>
29+
* Blog: https://zlt2000.gitee.io
30+
* Github: https://github.com/zlt2000
2731
*/
2832
@Slf4j
2933
public class AuthUtils {
@@ -73,12 +77,12 @@ private static String extractHeaderToken(HttpServletRequest request) {
7377
/**
7478
* 校验accessToken
7579
*/
76-
public static void checkAccessToken(HttpServletRequest request) {
80+
public static SysUser checkAccessToken(HttpServletRequest request) {
7781
String accessToken = extractToken(request);
78-
checkAccessToken(accessToken);
82+
return checkAccessToken(accessToken);
7983
}
8084

81-
public static void checkAccessToken(String accessTokenValue) {
85+
public static SysUser checkAccessToken(String accessTokenValue) {
8286
TokenStore tokenStore = SpringUtil.getBean(TokenStore.class);
8387
OAuth2AccessToken accessToken = tokenStore.readAccessToken(accessTokenValue);
8488
if (accessToken == null || accessToken.getValue() == null) {
@@ -91,6 +95,17 @@ public static void checkAccessToken(String accessTokenValue) {
9195
if (result == null) {
9296
throw new InvalidTokenException("Invalid access token: " + accessTokenValue);
9397
}
98+
return setContext(result);
99+
}
100+
101+
/**
102+
* 用户信息赋值 context 对象
103+
*/
104+
public static SysUser setContext(Authentication authentication) {
105+
SecurityContextHolder.getContext().setAuthentication(authentication);
106+
SysUser user = getUser(authentication);
107+
LoginUserContextHolder.setUser(user);
108+
return user;
94109
}
95110

96111
/**
@@ -134,6 +149,21 @@ public static String getUsername(Authentication authentication) {
134149
return username;
135150
}
136151

152+
/**
153+
* 获取登陆的用户对象
154+
*/
155+
public static SysUser getUser(Authentication authentication) {
156+
SysUser user = null;
157+
if (authentication != null && !(authentication instanceof AnonymousAuthenticationToken)) {
158+
Object principal = authentication.getPrincipal();
159+
//客户端模式只返回一个clientId
160+
if (principal instanceof SysUser) {
161+
user = (SysUser)principal;
162+
}
163+
}
164+
return user;
165+
}
166+
137167
/**
138168
* 获取登陆的帐户类型
139169
*/

zlt-commons/zlt-common-core/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-commons</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>zlt-common-core</artifactId>
1010
<description>公共通用组件</description>

zlt-commons/zlt-common-core/src/main/java/com/central/common/constant/CommonConstant.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public interface CommonConstant {
1010
/**
1111
* 项目版本号(banner使用)
1212
*/
13-
String PROJECT_VERSION = "5.3.0";
13+
String PROJECT_VERSION = "5.4.0";
1414

1515
/**
1616
* token请求头名称
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.central.common.context;
2+
3+
import com.alibaba.ttl.TransmittableThreadLocal;
4+
import com.central.common.model.SysUser;
5+
6+
/**
7+
* 登录用户holder
8+
*
9+
* @author zlt
10+
* @date 2022/6/26
11+
* <p>
12+
* Blog: https://zlt2000.gitee.io
13+
* Github: https://github.com/zlt2000
14+
*/
15+
public class LoginUserContextHolder {
16+
private static final ThreadLocal<SysUser> CONTEXT = new TransmittableThreadLocal<>();
17+
18+
public static void setUser(SysUser user) {
19+
CONTEXT.set(user);
20+
}
21+
22+
public static SysUser getUser() {
23+
return CONTEXT.get();
24+
}
25+
26+
public static void clear() {
27+
CONTEXT.remove();
28+
}
29+
}

zlt-commons/zlt-common-core/src/main/java/com/central/common/resolver/TokenArgumentResolver.java

+6-23
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66
import com.central.common.feign.UserService;
77
import com.central.common.model.SysRole;
88
import com.central.common.model.SysUser;
9+
import com.central.common.utils.LoginUserUtils;
910
import lombok.extern.slf4j.Slf4j;
1011
import org.springframework.core.MethodParameter;
12+
import org.springframework.security.authentication.AnonymousAuthenticationToken;
13+
import org.springframework.security.core.Authentication;
14+
import org.springframework.security.core.context.SecurityContextHolder;
1115
import org.springframework.web.bind.support.WebDataBinderFactory;
1216
import org.springframework.web.context.request.NativeWebRequest;
1317
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
@@ -61,30 +65,9 @@ public Object resolveArgument(MethodParameter methodParameter,
6165
LoginUser loginUser = methodParameter.getParameterAnnotation(LoginUser.class);
6266
boolean isFull = loginUser.isFull();
6367
HttpServletRequest request = nativeWebRequest.getNativeRequest(HttpServletRequest.class);
64-
String userId = request.getHeader(SecurityConstants.USER_ID_HEADER);
65-
String username = request.getHeader(SecurityConstants.USER_HEADER);
66-
String roles = request.getHeader(SecurityConstants.ROLE_HEADER);
6768
//账号类型
6869
String accountType = request.getHeader(SecurityConstants.ACCOUNT_TYPE_HEADER);
69-
if (StrUtil.isBlank(username)) {
70-
log.warn("resolveArgument error username is empty");
71-
return null;
72-
}
73-
SysUser user;
74-
if (isFull) {
75-
user = userService.selectByUsername(username);
76-
} else {
77-
user = new SysUser();
78-
user.setId(Long.valueOf(userId));
79-
user.setUsername(username);
80-
}
81-
List<SysRole> sysRoleList = new ArrayList<>();
82-
Arrays.stream(roles.split(",")).forEach(role -> {
83-
SysRole sysRole = new SysRole();
84-
sysRole.setCode(role);
85-
sysRoleList.add(sysRole);
86-
});
87-
user.setRoles(sysRoleList);
88-
return user;
70+
71+
return LoginUserUtils.getCurrentUser(request, isFull);
8972
}
9073
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.central.common.utils;
2+
3+
import cn.hutool.core.util.StrUtil;
4+
import com.central.common.constant.SecurityConstants;
5+
import com.central.common.feign.UserService;
6+
import com.central.common.model.SysRole;
7+
import com.central.common.model.SysUser;
8+
import org.springframework.security.authentication.AnonymousAuthenticationToken;
9+
import org.springframework.security.core.Authentication;
10+
import org.springframework.security.core.context.SecurityContextHolder;
11+
12+
import javax.servlet.http.HttpServletRequest;
13+
import java.util.ArrayList;
14+
import java.util.Arrays;
15+
import java.util.List;
16+
17+
/**
18+
* 获取当前登录人工具类
19+
*
20+
* @author zlt
21+
* @version 1.0
22+
* @date 2022/6/26
23+
* <p>
24+
* Blog: https://zlt2000.gitee.io
25+
* Github: https://github.com/zlt2000
26+
*/
27+
public class LoginUserUtils {
28+
/**
29+
* 获取当前登录人
30+
*/
31+
public static SysUser getCurrentUser(HttpServletRequest request, boolean isFull) {
32+
SysUser user = null;
33+
34+
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
35+
if (authentication != null && !(authentication instanceof AnonymousAuthenticationToken)) {
36+
Object principal = authentication.getPrincipal();
37+
//客户端模式只返回一个clientId
38+
if (principal instanceof SysUser) {
39+
user = (SysUser)principal;
40+
}
41+
}
42+
if (user == null) {
43+
String userId = request.getHeader(SecurityConstants.USER_ID_HEADER);
44+
String username = request.getHeader(SecurityConstants.USER_HEADER);
45+
String roles = request.getHeader(SecurityConstants.ROLE_HEADER);
46+
47+
if (StrUtil.isAllNotBlank(username, userId)) {
48+
if (isFull) {
49+
UserService userService = SpringUtil.getBean(UserService.class);
50+
user = userService.selectByUsername(username);
51+
} else {
52+
user = new SysUser();
53+
user.setId(Long.valueOf(userId));
54+
user.setUsername(username);
55+
}
56+
if (StrUtil.isNotBlank(roles)) {
57+
List<SysRole> sysRoleList = new ArrayList<>();
58+
Arrays.stream(roles.split(",")).forEach(role -> {
59+
SysRole sysRole = new SysRole();
60+
sysRole.setCode(role);
61+
sysRoleList.add(sysRole);
62+
});
63+
user.setRoles(sysRoleList);
64+
}
65+
}
66+
}
67+
return user;
68+
}
69+
}

zlt-commons/zlt-common-spring-boot-starter/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.zlt</groupId>
66
<artifactId>zlt-commons</artifactId>
7-
<version>5.3.0</version>
7+
<version>5.4.0</version>
88
</parent>
99
<artifactId>zlt-common-spring-boot-starter</artifactId>
1010
<description>公共通用组件</description>

0 commit comments

Comments
 (0)