From 265fcfe0bfce459bd8ca842811db1a225e082d21 Mon Sep 17 00:00:00 2001 From: pnoker Date: Sun, 29 Dec 2024 14:51:24 +0800 Subject: [PATCH] feat: . --- .../DictionaryForAuthController.java | 2 +- .../auth/controller/LimitedIpController.java | 4 +- .../auth/controller/UserLoginController.java | 2 + .../constant/common/RequestConstant.java | 18 +++ .../controller/DeviceStatusController.java | 2 +- .../controller/DriverStatusController.java | 2 +- .../data/controller/PointValueController.java | 2 +- .../filter/AuthenticGatewayFilter.java | 5 +- .../manager/controller/DeviceController.java | 6 +- .../DictionaryForManagerController.java | 12 +- .../DriverAttributeConfigController.java | 4 +- .../controller/DriverAttributeController.java | 4 +- .../manager/controller/DriverController.java | 27 ++-- .../manager/controller/GroupController.java | 4 +- .../manager/controller/LabelController.java | 4 +- .../PointAttributeConfigController.java | 4 +- .../controller/PointAttributeController.java | 4 +- .../manager/controller/PointController.java | 4 +- .../manager/controller/ProfileController.java | 4 +- .../manager/service/ProfileService.java | 7 +- .../service/impl/ProfileServiceImpl.java | 5 +- dc3-common/dc3-common-public/pom.xml | 6 + .../pnoker/common/utils/UserHeaderUtil.java | 139 ------------------ .../pnoker/common/base/BaseController.java | 68 ++++++--- .../pnoker/common/config/WebFilterConfig.java | 26 ++-- .../pnoker/common/utils/UserHeaderUtil.java | 117 +++++++++++++++ 26 files changed, 254 insertions(+), 228 deletions(-) delete mode 100644 dc3-common/dc3-common-public/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java create mode 100644 dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java diff --git a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/DictionaryForAuthController.java b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/DictionaryForAuthController.java index 96f7721ca..d34a36fb0 100644 --- a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/DictionaryForAuthController.java +++ b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/DictionaryForAuthController.java @@ -75,7 +75,7 @@ public class DictionaryForAuthController implements BaseController { @GetMapping("/limited_ip") public Mono>> limitedIpDictionary() { try { - List entityBOList = dictionaryForAuthService.limitedIpDictionary(getTenantId()); + List entityBOList = dictionaryForAuthService.limitedIpDictionary(getTenantId2()); List entityVOList = dictionaryForAuthBuilder.buildVOListByBOList(entityBOList); return Mono.just(R.ok(entityVOList)); } catch (Exception e) { diff --git a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/LimitedIpController.java b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/LimitedIpController.java index 7056d6921..d32127f4d 100644 --- a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/LimitedIpController.java +++ b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/LimitedIpController.java @@ -65,7 +65,7 @@ public class LimitedIpController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody LimitedIpVO entityVO) { try { LimitedIpBO entityBO = limitedIpBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); limitedIpService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -161,7 +161,7 @@ public class LimitedIpController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new LimitedIpQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = limitedIpService.selectByPage(entityQuery); Page entityPageVO = limitedIpBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/UserLoginController.java b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/UserLoginController.java index 8d00c43d7..e476ef686 100644 --- a/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/UserLoginController.java +++ b/dc3-common/dc3-common-auth/src/main/java/io/github/pnoker/common/auth/controller/UserLoginController.java @@ -184,6 +184,7 @@ public class UserLoginController implements BaseController { Page entityPageVO = userLoginBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); } catch (Exception e) { + log.error(e.getMessage(), e); return Mono.just(R.fail(e.getMessage())); } } @@ -199,6 +200,7 @@ public class UserLoginController implements BaseController { try { return Boolean.TRUE.equals(userLoginService.checkLoginNameValid(name)) ? Mono.just(R.ok()) : Mono.just(R.fail()); } catch (Exception e) { + log.error(e.getMessage(), e); return Mono.just(R.fail(e.getMessage())); } } diff --git a/dc3-common/dc3-common-constant/src/main/java/io/github/pnoker/common/constant/common/RequestConstant.java b/dc3-common/dc3-common-constant/src/main/java/io/github/pnoker/common/constant/common/RequestConstant.java index 4f8009d3d..a9de4d780 100644 --- a/dc3-common/dc3-common-constant/src/main/java/io/github/pnoker/common/constant/common/RequestConstant.java +++ b/dc3-common/dc3-common-constant/src/main/java/io/github/pnoker/common/constant/common/RequestConstant.java @@ -88,4 +88,22 @@ public class RequestConstant { throw new IllegalStateException(ExceptionConstant.UTILITY_CLASS); } } + + /** + * 自定义请求 Key 相关常量 + * + * @author pnoker + * @since 2022.1.0 + */ + public static class Key { + + /** + * 用户请求头关键字 + */ + public static final String USER_HEADER = "USER_HEADER_KEY"; + + private Key() { + throw new IllegalStateException(ExceptionConstant.UTILITY_CLASS); + } + } } diff --git a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DeviceStatusController.java b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DeviceStatusController.java index 5bfb1851e..ae96c2066 100644 --- a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DeviceStatusController.java +++ b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DeviceStatusController.java @@ -60,7 +60,7 @@ public class DeviceStatusController implements BaseController { @PostMapping("/device") public Mono>> deviceStatus(@RequestBody(required = false) DeviceQuery deviceQuery) { try { - deviceQuery.setTenantId(getTenantId()); + deviceQuery.setTenantId(getTenantId2()); Map statuses = deviceStatusService.selectByPage(deviceQuery); return Mono.just(R.ok(statuses)); } catch (Exception e) { diff --git a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DriverStatusController.java b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DriverStatusController.java index 3fb1490d4..a2d1d5d27 100644 --- a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DriverStatusController.java +++ b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/DriverStatusController.java @@ -60,7 +60,7 @@ public class DriverStatusController implements BaseController { @PostMapping("/driver") public Mono>> driverStatus(@RequestBody(required = false) DriverQuery driverQuery) { try { - driverQuery.setTenantId(getTenantId()); + driverQuery.setTenantId(getTenantId2()); Map statuses = driverStatusService.selectByPage(driverQuery); return Mono.just(R.ok(statuses)); } catch (Exception e) { diff --git a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/PointValueController.java b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/PointValueController.java index b2b993bc6..0fc8c08a0 100644 --- a/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/PointValueController.java +++ b/dc3-common/dc3-common-data/src/main/java/io/github/pnoker/common/data/controller/PointValueController.java @@ -64,7 +64,7 @@ public class PointValueController implements BaseController { if (Objects.isNull(pointValueQuery)) { pointValueQuery = new PointValueQuery(); } - pointValueQuery.setTenantId(getTenantId()); + pointValueQuery.setTenantId(getTenantId2()); Page entityPageBO = pointValueService.latest(pointValueQuery); Page entityPageVO = pointValueBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-gateway/src/main/java/io/github/pnoker/common/gateway/filter/AuthenticGatewayFilter.java b/dc3-common/dc3-common-gateway/src/main/java/io/github/pnoker/common/gateway/filter/AuthenticGatewayFilter.java index 135ebaa9a..457d53ef5 100644 --- a/dc3-common/dc3-common-gateway/src/main/java/io/github/pnoker/common/gateway/filter/AuthenticGatewayFilter.java +++ b/dc3-common/dc3-common-gateway/src/main/java/io/github/pnoker/common/gateway/filter/AuthenticGatewayFilter.java @@ -24,7 +24,6 @@ import io.github.pnoker.common.entity.R; import io.github.pnoker.common.entity.common.RequestHeader; import io.github.pnoker.common.enums.EnableFlagEnum; import io.github.pnoker.common.exception.UnAuthorizedException; -import io.github.pnoker.common.utils.DecodeUtil; import io.github.pnoker.common.utils.JsonUtil; import io.github.pnoker.common.utils.RequestUtil; import lombok.extern.slf4j.Slf4j; @@ -80,7 +79,7 @@ public class AuthenticGatewayFilter implements GatewayFilter, Ordered { headers.set(RequestConstant.Header.X_AUTH_USER, JsonUtil.toJsonString(entityBO)); }).build(); - exchange.mutate().request(build).build(); + return chain.filter(exchange.mutate().request(build).build()); } catch (Exception e) { log.error("AuthenticGatewayFilter error: {}, Url: {}", e.getMessage(), request.getURI(), e); ServerHttpResponse response = exchange.getResponse(); @@ -89,8 +88,6 @@ public class AuthenticGatewayFilter implements GatewayFilter, Ordered { DataBuffer dataBuffer = response.bufferFactory().wrap(JsonUtil.toJsonBytes(R.fail(e.getMessage()))); return response.writeWith(Mono.just(dataBuffer)); } - - return chain.filter(exchange); } private GrpcRTenantDTO getTenantDTO(ServerHttpRequest request) { diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DeviceController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DeviceController.java index 7445c83f1..0d28db7d9 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DeviceController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DeviceController.java @@ -76,7 +76,7 @@ public class DeviceController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody DeviceVO entityVO) { try { DeviceBO entityBO = deviceBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); deviceService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -168,7 +168,7 @@ public class DeviceController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DeviceQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = deviceService.selectByPage(entityQuery); Page entityPageVO = deviceBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -188,7 +188,7 @@ public class DeviceController implements BaseController { public Mono> importDevice(@Validated(Upload.class) DeviceVO entityVO, @RequestPart("file") Mono filePart) { try { DeviceBO entityBO = deviceBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); return filePart.flatMap(part -> { String filePath = FileUtil.getTempPath() + FileUtil.getRandomXlsxName(); File file = new File(filePath); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DictionaryForManagerController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DictionaryForManagerController.java index 409961998..e613754a9 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DictionaryForManagerController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DictionaryForManagerController.java @@ -67,7 +67,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.driverDictionary(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -89,7 +89,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.profileDictionary(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -111,7 +111,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.pointDictionaryForProfile(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -133,7 +133,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.pointDictionaryForDevice(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -155,7 +155,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.deviceDictionary(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); @@ -177,7 +177,7 @@ public class DictionaryForManagerController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DictionaryQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = dictionaryForManagerService.deviceDictionaryForDriver(entityQuery); Page entityPageVO = dictionaryForManagerBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeConfigController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeConfigController.java index c03382e40..cf84d675a 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeConfigController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeConfigController.java @@ -66,7 +66,7 @@ public class DriverAttributeConfigController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody DriverAttributeConfigVO entityVO) { try { DriverAttributeConfigBO entityBO = driverAttributeConfigBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); driverAttributeConfigService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -178,7 +178,7 @@ public class DriverAttributeConfigController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DriverAttributeConfigQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = driverAttributeConfigService.selectByPage(entityQuery); Page entityPageVO = driverAttributeConfigBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeController.java index d40b6470d..38641268e 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverAttributeController.java @@ -68,7 +68,7 @@ public class DriverAttributeController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody DriverAttributeVO entityVO) { try { DriverAttributeBO entityBO = driverAttributeBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); driverAttributeService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -162,7 +162,7 @@ public class DriverAttributeController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new DriverAttributeQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = driverAttributeService.selectByPage(entityQuery); Page entityPageVO = driverAttributeBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverController.java index f71d242c5..bcd8e8151 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/DriverController.java @@ -69,7 +69,7 @@ public class DriverController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody DriverVO entityVO) { try { DriverBO entityBO = driverBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); driverService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -158,7 +158,7 @@ public class DriverController implements BaseController { @GetMapping("/service/{serviceName}") public Mono> selectByServiceName(@NotNull @PathVariable(value = "serviceName") String serviceName) { try { - DriverBO entityBO = driverService.selectByServiceName(serviceName, getTenantId()); + DriverBO entityBO = driverService.selectByServiceName(serviceName, getTenantId2()); DriverVO entityVO = driverBuilder.buildVOByBO(entityBO); return Mono.just(R.ok(entityVO)); } catch (Exception e) { @@ -175,18 +175,17 @@ public class DriverController implements BaseController { */ @PostMapping("/list") public Mono>> list(@RequestBody(required = false) DriverQuery entityQuery) { - try { - if (Objects.isNull(entityQuery)) { - entityQuery = new DriverQuery(); + return getTenantId().flatMap(tenantId -> { + try { + DriverQuery query = Objects.isNull(entityQuery) ? new DriverQuery() : entityQuery; + query.setTenantId(tenantId); + Page entityPageBO = driverService.selectByPage(query); + Page entityPageVO = driverBuilder.buildVOPageByBOPage(entityPageBO); + return Mono.just(R.ok(entityPageVO)); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Mono.just(R.fail(e.getMessage())); } - entityQuery.setTenantId(getTenantId()); - Page entityPageBO = driverService.selectByPage(entityQuery); - Page entityPageVO = driverBuilder.buildVOPageByBOPage(entityPageBO); - return Mono.just(R.ok(entityPageVO)); - } catch (Exception e) { - log.error(e.getMessage(), e); - return Mono.just(R.fail(e.getMessage())); - } + }); } - } diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/GroupController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/GroupController.java index c3fe27fe6..ec20a2a6f 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/GroupController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/GroupController.java @@ -65,7 +65,7 @@ public class GroupController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody GroupVO entityVO) { try { GroupBO entityBO = groupBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); groupService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -139,7 +139,7 @@ public class GroupController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new GroupQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = groupService.selectByPage(entityQuery); Page entityPageVO = groupBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/LabelController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/LabelController.java index 5d66ceab9..d7f135f2f 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/LabelController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/LabelController.java @@ -65,7 +65,7 @@ public class LabelController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody LabelVO entityVO) { try { LabelBO entityBO = labelBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); labelService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -139,7 +139,7 @@ public class LabelController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new LabelQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = labelService.selectByPage(entityQuery); Page entityPageVO = labelBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeConfigController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeConfigController.java index 29144d4ef..33c7f96b2 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeConfigController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeConfigController.java @@ -66,7 +66,7 @@ public class PointAttributeConfigController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody PointAttributeConfigVO entityVO) { try { PointAttributeConfigBO entityBO = pointAttributeConfigBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); pointAttributeConfigService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -199,7 +199,7 @@ public class PointAttributeConfigController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new PointAttributeConfigQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = pointAttributeConfigService.selectByPage(entityQuery); Page entityPageVO = pointAttributeConfigBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeController.java index 9299166c7..a091a29a3 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointAttributeController.java @@ -68,7 +68,7 @@ public class PointAttributeController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody PointAttributeVO entityVO) { try { PointAttributeBO entityBO = pointAttributeBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); pointAttributeService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -162,7 +162,7 @@ public class PointAttributeController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new PointAttributeQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = pointAttributeService.selectByPage(entityQuery); Page entityPageVO = pointAttributeBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointController.java index 58bd8470a..c73d61e97 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/PointController.java @@ -73,7 +73,7 @@ public class PointController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody PointVO entityVO) { try { PointBO entityBO = pointBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); pointService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -201,7 +201,7 @@ public class PointController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new PointQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = pointService.selectByPage(entityQuery); Page entityPageVO = pointBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/ProfileController.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/ProfileController.java index c04877844..f88308466 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/ProfileController.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/controller/ProfileController.java @@ -69,7 +69,7 @@ public class ProfileController implements BaseController { public Mono> add(@Validated(Add.class) @RequestBody ProfileVO entityVO) { try { ProfileBO entityBO = profileBuilder.buildBOByVO(entityVO); - entityBO.setTenantId(getTenantId()); + entityBO.setTenantId(getTenantId2()); profileService.save(entityBO); return Mono.just(R.ok(ResponseEnum.ADD_SUCCESS)); } catch (Exception e) { @@ -179,7 +179,7 @@ public class ProfileController implements BaseController { if (Objects.isNull(entityQuery)) { entityQuery = new ProfileQuery(); } - entityQuery.setTenantId(getTenantId()); + entityQuery.setTenantId(getTenantId2()); Page entityPageBO = profileService.selectByPage(entityQuery); Page entityPageVO = profileBuilder.buildVOPageByBOPage(entityPageBO); return Mono.just(R.ok(entityPageVO)); diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/ProfileService.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/ProfileService.java index 7d72b0387..73e94bb60 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/ProfileService.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/ProfileService.java @@ -35,11 +35,12 @@ public interface ProfileService extends BaseService { /** * 根据 模板名称和模版类型 查询模版 * - * @param name 模板名称 - * @param type 模板类型 {@link ProfileTypeFlagEnum} + * @param tenantId 租户ID + * @param name 模板名称 + * @param type 模板类型 {@link ProfileTypeFlagEnum} * @return ProfileBO */ - ProfileBO selectByNameAndType(String name, ProfileTypeFlagEnum type); + ProfileBO selectByNameAndType(Long tenantId, String name, ProfileTypeFlagEnum type); /** * 根据 设备ID 查询模版 diff --git a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/impl/ProfileServiceImpl.java b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/impl/ProfileServiceImpl.java index 5a718c2bc..bee9c4596 100644 --- a/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/impl/ProfileServiceImpl.java +++ b/dc3-common/dc3-common-manager/src/main/java/io/github/pnoker/common/manager/service/impl/ProfileServiceImpl.java @@ -39,7 +39,6 @@ import io.github.pnoker.common.manager.entity.query.ProfileQuery; import io.github.pnoker.common.manager.mapper.ProfileMapper; import io.github.pnoker.common.manager.service.ProfileService; import io.github.pnoker.common.utils.PageUtil; -import io.github.pnoker.common.utils.UserHeaderUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -124,11 +123,11 @@ public class ProfileServiceImpl implements ProfileService { } @Override - public ProfileBO selectByNameAndType(String name, ProfileTypeFlagEnum type) { + public ProfileBO selectByNameAndType(Long tenantId, String name, ProfileTypeFlagEnum type) { LambdaQueryWrapper wrapper = Wrappers.query().lambda(); wrapper.eq(ProfileDO::getProfileName, name); wrapper.eq(ProfileDO::getProfileTypeFlag, type); - wrapper.eq(ProfileDO::getTenantId, UserHeaderUtil.getUserHeader().getTenantId()); + wrapper.eq(ProfileDO::getTenantId, tenantId); wrapper.last(QueryWrapperConstant.LIMIT_ONE); ProfileDO entityDO = profileManager.getOne(wrapper); return profileBuilder.buildBOByDO(entityDO); diff --git a/dc3-common/dc3-common-public/pom.xml b/dc3-common/dc3-common-public/pom.xml index ef964a2b8..6dd857201 100644 --- a/dc3-common/dc3-common-public/pom.xml +++ b/dc3-common/dc3-common-public/pom.xml @@ -170,6 +170,12 @@ io.github.pnoker dc3-common-exception + + + com.alibaba + transmittable-thread-local + 2.14.5 + \ No newline at end of file diff --git a/dc3-common/dc3-common-public/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java b/dc3-common/dc3-common-public/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java deleted file mode 100644 index 77c857b1b..000000000 --- a/dc3-common/dc3-common-public/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2016-present the IoT DC3 original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.github.pnoker.common.utils; - -import cn.hutool.core.thread.threadlocal.NamedThreadLocal; -import io.github.pnoker.common.constant.common.ExceptionConstant; -import io.github.pnoker.common.entity.common.RequestHeader; -import io.github.pnoker.common.exception.UnAuthorizedException; -import lombok.extern.slf4j.Slf4j; - -import java.util.Objects; - -/** - * 用户请求头 相关工具类 - * - * @author pnoker - * @since 2022.1.0 - */ -@Slf4j -public class UserHeaderUtil { - - private static final ThreadLocal USER_HEADER_THREAD_LOCAL = new NamedThreadLocal<>("Request of user header"); - - private UserHeaderUtil() { - throw new IllegalStateException(ExceptionConstant.UTILITY_CLASS); - } - - /** - * 获取用户请求头信息 - * - * @return {@link RequestHeader.UserHeader} - */ - public static RequestHeader.UserHeader getUserHeader() { - RequestHeader.UserHeader entityBO = USER_HEADER_THREAD_LOCAL.get(); - if (Objects.isNull(entityBO)) { - throw new UnAuthorizedException("Unable to get user header"); - } - - return entityBO; - } - - /** - * 设置用户请求头信息 - * - * @param entityBO {@link RequestHeader.UserHeader} - */ - public static void setUserHeader(RequestHeader.UserHeader entityBO) { - if (Objects.isNull(entityBO) || Objects.isNull(entityBO.getTenantId()) || Objects.isNull(entityBO.getUserId())) { - removeUserHeader(); - } else { - USER_HEADER_THREAD_LOCAL.set(entityBO); - } - } - - /** - * 获取用户请求头的租户ID - * - * @return 租户ID - */ - public static Long getTenantId() { - RequestHeader.UserHeader entityBO = getUserHeader(); - - Long tenantId = entityBO.getTenantId(); - if (Objects.isNull(tenantId)) { - throw new UnAuthorizedException("Unable to get tenant id of user header"); - } - - return tenantId; - } - - /** - * 获取用户请求头的用户ID - * - * @return 用户ID - */ - public static Long getUserId() { - RequestHeader.UserHeader entityBO = getUserHeader(); - - Long userId = entityBO.getUserId(); - if (Objects.isNull(userId)) { - throw new UnAuthorizedException("Unable to get user id of user header"); - } - - return userId; - } - - /** - * 获取用户请求头的用户昵称 - * - * @return 用户昵称 - */ - public static String getNickName() { - RequestHeader.UserHeader entityBO = getUserHeader(); - - String nickName = entityBO.getNickName(); - if (Objects.isNull(nickName)) { - throw new UnAuthorizedException("Unable to get nick name of user header"); - } - - return nickName; - } - - /** - * 获取用户请求头的用户名称 - * - * @return 用户名称 - */ - public static String getUserName() { - RequestHeader.UserHeader entityBO = getUserHeader(); - - String userName = entityBO.getUserName(); - if (Objects.isNull(userName)) { - throw new UnAuthorizedException("Unable to get user name of user header"); - } - - return userName; - } - - /** - * 清空用户请求头信息 - */ - public static void removeUserHeader() { - USER_HEADER_THREAD_LOCAL.remove(); - } -} diff --git a/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/base/BaseController.java b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/base/BaseController.java index 208321714..ce89682dc 100644 --- a/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/base/BaseController.java +++ b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/base/BaseController.java @@ -16,7 +16,9 @@ package io.github.pnoker.common.base; +import io.github.pnoker.common.entity.common.RequestHeader; import io.github.pnoker.common.utils.UserHeaderUtil; +import reactor.core.publisher.Mono; /** * 基础 Controller 类接口 @@ -29,30 +31,12 @@ public interface BaseController { // 默认方法 /** - * 获取用户ID + * 获取租户ID * - * @return User ID + * @return 租户ID */ - default Long getUserId() { - return UserHeaderUtil.getUserHeader().getUserId(); - } - - /** - * 获取用户昵称 - * - * @return Nick Name - */ - default String getNickName() { - return UserHeaderUtil.getUserHeader().getNickName(); - } - - /** - * 获取用户名 - * - * @return User Name - */ - default String getUserName() { - return UserHeaderUtil.getUserHeader().getUserName(); + default Mono getUserHeader() { + return UserHeaderUtil.getUserHeader(); } /** @@ -60,7 +44,43 @@ public interface BaseController { * * @return 租户ID */ - default Long getTenantId() { - return UserHeaderUtil.getUserHeader().getTenantId(); + default Mono getTenantId() { + return UserHeaderUtil.getTenantId(); + } + + /** + * 获取用户ID + * + * @return User ID + */ + default Mono getUserId() { + return UserHeaderUtil.getUserId(); + } + + /** + * 获取用户昵称 + * + * @return Nick Name + */ + default Mono getNickName() { + return UserHeaderUtil.getNickName(); + } + + /** + * 获取用户名 + * + * @return User Name + */ + default Mono getUserName() { + return UserHeaderUtil.getUserName(); + } + + /** + * 获取租户ID + * + * @return 租户ID + */ + default Long getTenantId2() { + return 1L; } } diff --git a/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/config/WebFilterConfig.java b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/config/WebFilterConfig.java index ec72f635f..84f8298c5 100644 --- a/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/config/WebFilterConfig.java +++ b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/config/WebFilterConfig.java @@ -19,10 +19,8 @@ package io.github.pnoker.common.config; import cn.hutool.core.text.CharSequenceUtil; import io.github.pnoker.common.constant.common.RequestConstant; import io.github.pnoker.common.entity.common.RequestHeader; -import io.github.pnoker.common.utils.DecodeUtil; import io.github.pnoker.common.utils.JsonUtil; import io.github.pnoker.common.utils.RequestUtil; -import io.github.pnoker.common.utils.UserHeaderUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.web.ServerProperties; @@ -30,8 +28,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.web.server.WebFilter; -import reactor.core.publisher.Mono; +import java.util.Objects; import java.util.Optional; /** @@ -76,17 +74,25 @@ public class WebFilterConfig { public WebFilter interceptor() { return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); - String authUser = RequestUtil.getRequestHeader(request, RequestConstant.Header.X_AUTH_USER); - if (CharSequenceUtil.isNotEmpty(authUser)) { - byte[] decode = DecodeUtil.deHexCode(authUser); + String user = RequestUtil.getRequestHeader(request, RequestConstant.Header.X_AUTH_USER); + + if (CharSequenceUtil.isNotEmpty(user)) { try { - RequestHeader.UserHeader userHeader = JsonUtil.parseObject(decode, RequestHeader.UserHeader.class); - UserHeaderUtil.setUserHeader(userHeader); + RequestHeader.UserHeader userHeader = JsonUtil.parseObject(user, RequestHeader.UserHeader.class); + + if (Objects.isNull(userHeader) || Objects.isNull(userHeader.getTenantId()) || Objects.isNull(userHeader.getUserId())) { + log.warn("Invalid user header: {}", userHeader); + return chain.filter(exchange).contextWrite(context -> context.delete(RequestConstant.Key.USER_HEADER)); + } else { + log.debug("User header: {}", userHeader); + return chain.filter(exchange).contextWrite(context -> context.put(RequestConstant.Key.USER_HEADER, userHeader)); + } } catch (Exception e) { - log.error(e.getMessage(), e); + log.error("Error parsing user header", e); } } - return chain.filter(exchange).then(Mono.fromRunnable(UserHeaderUtil::removeUserHeader)); + + return chain.filter(exchange); }; } } \ No newline at end of file diff --git a/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java new file mode 100644 index 000000000..8c396a8aa --- /dev/null +++ b/dc3-common/dc3-common-web/src/main/java/io/github/pnoker/common/utils/UserHeaderUtil.java @@ -0,0 +1,117 @@ +/* + * Copyright 2016-present the IoT DC3 original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.github.pnoker.common.utils; + +import cn.hutool.core.text.CharSequenceUtil; +import io.github.pnoker.common.constant.common.ExceptionConstant; +import io.github.pnoker.common.constant.common.RequestConstant; +import io.github.pnoker.common.entity.common.RequestHeader; +import io.github.pnoker.common.exception.UnAuthorizedException; +import lombok.extern.slf4j.Slf4j; +import reactor.core.publisher.Mono; + +import java.util.Objects; + +/** + * 用户请求头 相关工具类 + * + * @author pnoker + * @since 2022.1.0 + */ +@Slf4j +public class UserHeaderUtil { + + private UserHeaderUtil() { + throw new IllegalStateException(ExceptionConstant.UTILITY_CLASS); + } + + /** + * 获取用户请求头信息 + * + * @return 用户信息 + */ + public static Mono getUserHeader() { + return Mono.deferContextual(context -> { + if (!context.hasKey(RequestConstant.Key.USER_HEADER)) { + return Mono.error(new UnAuthorizedException("Unable to get user header")); + } + RequestHeader.UserHeader userHeader = context.get(RequestConstant.Key.USER_HEADER); + return Mono.just(userHeader); + }); + } + + /** + * 获取用户请求头的租户ID + * + * @return 租户ID + */ + public static Mono getTenantId() { + return getUserHeader().flatMap(userHeader -> { + Long tenantId = userHeader.getTenantId(); + if (Objects.isNull(tenantId)) { + return Mono.error(new UnAuthorizedException("Unable to get tenant id of user header")); + } + return Mono.just(tenantId); + }); + } + + /** + * 获取用户请求头的用户ID + * + * @return 用户ID + */ + public static Mono getUserId() { + return getUserHeader().flatMap(userHeader -> { + Long userId = userHeader.getUserId(); + if (Objects.isNull(userId)) { + return Mono.error(new UnAuthorizedException("Unable to get user id of user header")); + } + return Mono.just(userId); + }); + } + + /** + * 获取用户请求头的用户昵称 + * + * @return 用户昵称 + */ + public static Mono getNickName() { + return getUserHeader().flatMap(userHeader -> { + String nickName = userHeader.getNickName(); + if (CharSequenceUtil.isEmpty(nickName)) { + return Mono.error(new UnAuthorizedException("Unable to get nick name of user header")); + } + return Mono.just(nickName); + }); + } + + /** + * 获取用户请求头的用户名称 + * + * @return 用户名称 + */ + public static Mono getUserName() { + return getUserHeader().flatMap(userHeader -> { + String userName = userHeader.getUserName(); + if (CharSequenceUtil.isEmpty(userName)) { + return Mono.error(new UnAuthorizedException("Unable to get user name of user header")); + } + return Mono.just(userName); + }); + } + +}