deptIds = new ArrayList<>();
/**
* 是否只查询本部门
diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/datascope/DataScopeInterceptor.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/datascope/DataScopeInterceptor.java
similarity index 55%
rename from pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/datascope/DataScopeInterceptor.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/datascope/DataScopeInterceptor.java
index 4862e1bdf..fd96d9f59 100644
--- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/datascope/DataScopeInterceptor.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/datascope/DataScopeInterceptor.java
@@ -15,12 +15,20 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.common.core.datascope;
+package com.pig4cloud.pigx.common.data.datascope;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.Db;
+import cn.hutool.db.Entity;
import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
import com.baomidou.mybatisplus.extension.handlers.AbstractSqlParserHandler;
+import com.pig4cloud.pigx.common.core.constant.SecurityConstants;
+import com.pig4cloud.pigx.common.core.exception.CheckedException;
+import com.pig4cloud.pigx.common.data.enums.DataScopeTypeEnum;
+import com.pig4cloud.pigx.common.security.service.PigxUser;
+import com.pig4cloud.pigx.common.security.util.SecurityUtils;
+import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.executor.statement.StatementHandler;
import org.apache.ibatis.mapping.BoundSql;
@@ -29,26 +37,29 @@ import org.apache.ibatis.mapping.SqlCommandType;
import org.apache.ibatis.plugin.*;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.SystemMetaObject;
+import org.springframework.security.core.GrantedAuthority;
+import javax.sql.DataSource;
import java.sql.Connection;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* @author lengleng
- * @date 2018/8/30
+ * @date 2018/12/26
*
* mybatis 数据权限拦截器
*/
@Slf4j
+@AllArgsConstructor
@Intercepts({@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})})
public class DataScopeInterceptor extends AbstractSqlParserHandler implements Interceptor {
+ private final DataSource dataSource;
@Override
public Object intercept(Invocation invocation) throws Throwable {
- StatementHandler statementHandler = (StatementHandler) PluginUtils.realTarget(invocation.getTarget());
+ StatementHandler statementHandler = PluginUtils.realTarget(invocation.getTarget());
MetaObject metaObject = SystemMetaObject.forObject(statementHandler);
this.sqlParser(metaObject);
// 先判断是不是SELECT操作
@@ -63,19 +74,57 @@ public class DataScopeInterceptor extends AbstractSqlParserHandler implements In
//查找参数中包含DataScope类型的参数
DataScope dataScope = findDataScopeObject(parameterObject);
-
if (dataScope == null) {
return invocation.proceed();
- } else {
- String scopeName = dataScope.getScopeName();
- List deptIds = dataScope.getDeptIds();
- if (StrUtil.isNotBlank(scopeName) && CollectionUtil.isNotEmpty(deptIds)) {
- String join = CollectionUtil.join(deptIds, ",");
- originalSql = "select * from (" + originalSql + ") temp_data_scope where temp_data_scope." + scopeName + " in (" + join + ")";
- metaObject.setValue("delegate.boundSql.sql", originalSql);
- }
- return invocation.proceed();
}
+
+ String scopeName = dataScope.getScopeName();
+ List deptIds = dataScope.getDeptIds();
+ // 优先获取赋值数据
+ if (CollUtil.isEmpty(deptIds)) {
+ PigxUser user = SecurityUtils.getUser();
+ if (user == null) {
+ throw new CheckedException("auto datascope, set up security details true");
+ }
+
+ List roleIdList = user.getAuthorities()
+ .stream().map(GrantedAuthority::getAuthority)
+ .filter(authority -> authority.startsWith(SecurityConstants.ROLE))
+ .map(authority -> authority.split("_")[1])
+ .collect(Collectors.toList());
+
+ Entity query = Db.use(dataSource)
+ .query("SELECT * FROM sys_role where role_id IN (" + CollUtil.join(roleIdList, ",") + ")")
+ .stream().min(Comparator.comparingInt(o -> o.getInt("ds_type"))).get();
+
+ Integer dsType = query.getInt("ds_type");
+ // 查询全部
+ if (DataScopeTypeEnum.ALL.getType() == dsType) {
+ return invocation.proceed();
+ }
+ // 自定义
+ if (DataScopeTypeEnum.CUSTOM.getType() == dsType) {
+ String dsScope = query.getStr("ds_scope");
+ deptIds.addAll(Arrays.stream(dsScope.split(","))
+ .map(Integer::parseInt).collect(Collectors.toList()));
+ }
+ // 查询本级及其下级
+ if (DataScopeTypeEnum.OWN_CHILD_LEVEL.getType() == dsType) {
+ List deptIdList = Db.use(dataSource)
+ .findBy("sys_dept_relation", "ancestor", user.getDeptId())
+ .stream().map(entity -> entity.getInt("descendant"))
+ .collect(Collectors.toList());
+ deptIds.addAll(deptIdList);
+ }
+ // 只查询本级
+ if (DataScopeTypeEnum.OWN_LEVEL.getType() == dsType) {
+ deptIds.add(user.getDeptId());
+ }
+ }
+ String join = CollectionUtil.join(deptIds, ",");
+ originalSql = "select * from (" + originalSql + ") temp_data_scope where temp_data_scope." + scopeName + " in (" + join + ")";
+ metaObject.setValue("delegate.boundSql.sql", originalSql);
+ return invocation.proceed();
}
/**
diff --git a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/enums/DataScopeTypeEnum.java
similarity index 51%
rename from pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/enums/DataScopeTypeEnum.java
index d74149358..9e243af25 100644
--- a/pigx-visual/pigx-daemon/src/main/java/com/pig4cloud/pigx/daemon/config/MybatisPlusConfigurer.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/enums/DataScopeTypeEnum.java
@@ -15,39 +15,46 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.daemon.config;
+package com.pig4cloud.pigx.common.data.enums;
-import com.baomidou.mybatisplus.core.injector.ISqlInjector;
-import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
/**
* @author lengleng
- * @date 2017/10/29
+ * @date 2018/12/26
+ *
+ * 数据权限类型
*/
-@Configuration
-@MapperScan("com.pig4cloud.pigx.daemon.mapper")
-public class MybatisPlusConfigurer {
+@Getter
+@AllArgsConstructor
+public enum DataScopeTypeEnum {
/**
- * 分页插件
- *
- * @return PaginationInterceptor
+ * 查询全部数据
*/
- @Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
- }
+ ALL(0, "全部"),
/**
- * 逻辑删除插件
- *
- * @return LogicSqlInjector
+ * 自定义
*/
- @Bean
- public ISqlInjector sqlInjector() {
- return new LogicSqlInjector();
- }
+ CUSTOM(1, "自定义"),
+
+ /**
+ * 本级及子级
+ */
+ OWN_CHILD_LEVEL(2, "本级及子级"),
+
+ /**
+ * 本级
+ */
+ OWN_LEVEL(3, "本级");
+
+ /**
+ * 类型
+ */
+ private final int type;
+ /**
+ * 描述
+ */
+ private final String description;
}
diff --git a/pigx-visual/pigx-activiti/src/main/java/com/pig4cloud/pigx/act/config/MybatisPlusConfigurer.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfig.java
similarity index 69%
rename from pigx-visual/pigx-activiti/src/main/java/com/pig4cloud/pigx/act/config/MybatisPlusConfigurer.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfig.java
index 9b7c69e48..698bcc849 100644
--- a/pigx-visual/pigx-activiti/src/main/java/com/pig4cloud/pigx/act/config/MybatisPlusConfigurer.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/mybatis/MybatisPlusConfig.java
@@ -15,34 +15,31 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.act.config;
+package com.pig4cloud.pigx.common.data.mybatis;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.core.parser.ISqlParser;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
-import com.pig4cloud.pigx.common.core.util.TenantContextHolder;
-import lombok.extern.slf4j.Slf4j;
-import net.sf.jsqlparser.expression.Expression;
-import net.sf.jsqlparser.expression.LongValue;
+import com.pig4cloud.pigx.common.data.datascope.DataScopeInterceptor;
+import com.pig4cloud.pigx.common.data.tenant.PigxTenantHandler;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.List;
/**
* @author lengleng
- * @date 2018/9/27
- * mybatis-plus 配置
+ * @date 2017/10/29
*/
-@Slf4j
@Configuration
-@MapperScan("com.pig4cloud.pigx.act.mapper")
-public class MybatisPlusConfigurer {
+@MapperScan("com.pig4cloud.pigx.*.mapper")
+public class MybatisPlusConfig {
+
/**
* 分页插件
*
@@ -53,29 +50,23 @@ public class MybatisPlusConfigurer {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
List sqlParserList = new ArrayList<>();
TenantSqlParser tenantSqlParser = new TenantSqlParser();
- tenantSqlParser.setTenantHandler(new TenantHandler() {
- @Override
- public Expression getTenantId() {
- Integer tenantId = TenantContextHolder.getTenantId();
- log.debug("当前租户为 >> {}", tenantId);
- return new LongValue(tenantId);
- }
-
- @Override
- public String getTenantIdColumn() {
- return "tenant_id";
- }
-
- @Override
- public boolean doTableFilter(String tableName) {
- return false;
- }
- });
+ tenantSqlParser.setTenantHandler(new PigxTenantHandler());
sqlParserList.add(tenantSqlParser);
paginationInterceptor.setSqlParserList(sqlParserList);
return paginationInterceptor;
}
+ /**
+ * 数据权限插件
+ *
+ * @param dataSource 数据源
+ * @return DataScopeInterceptor
+ */
+ @Bean
+ public DataScopeInterceptor dataScopeInterceptor(DataSource dataSource) {
+ return new DataScopeInterceptor(dataSource);
+ }
+
/**
* 逻辑删除插件
*
diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantConfiguration.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantConfiguration.java
similarity index 96%
rename from pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantConfiguration.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantConfiguration.java
index 62592da3b..d5d6dbde8 100644
--- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantConfiguration.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantConfiguration.java
@@ -15,7 +15,7 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.common.security.feign;
+package com.pig4cloud.pigx.common.data.tenant;
import feign.RequestInterceptor;
import org.springframework.context.annotation.Bean;
diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantInterceptor.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantInterceptor.java
similarity index 92%
rename from pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantInterceptor.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantInterceptor.java
index 4e0d90c70..fda44d470 100644
--- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/feign/PigxFeignTenantInterceptor.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxFeignTenantInterceptor.java
@@ -15,10 +15,9 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.common.security.feign;
+package com.pig4cloud.pigx.common.data.tenant;
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
-import com.pig4cloud.pigx.common.core.util.TenantContextHolder;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j;
diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java
new file mode 100644
index 000000000..82f1d88a8
--- /dev/null
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/PigxTenantHandler.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2018-2025, lengleng All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: lengleng (wangiegie@gmail.com)
+ */
+
+package com.pig4cloud.pigx.common.data.tenant;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.jsqlparser.expression.Expression;
+import net.sf.jsqlparser.expression.LongValue;
+
+/**
+ * @author lengleng
+ * @date 2018-12-26
+ *
+ * 租户维护处理器
+ */
+@Slf4j
+public class PigxTenantHandler implements TenantHandler {
+ private static final String[] TENANT_TABLES = new String[]{"sys_user", "sys_role", "sys_dept",
+ "sys_log", "sys_social_details", "sys_dict", "sys_log", "oa_leave_bill"};
+
+ /**
+ * 获取租户值
+ *
+ * @return 租户值
+ */
+ @Override
+ public Expression getTenantId() {
+ Integer tenantId = TenantContextHolder.getTenantId();
+ log.debug("当前租户为 >> {}", tenantId);
+ return new LongValue(tenantId);
+ }
+
+ /**
+ * 获取租户字段名
+ *
+ * @return 租户字段名
+ */
+ @Override
+ public String getTenantIdColumn() {
+ return "tenant_id";
+ }
+
+ /**
+ * 根据表名判断是否进行过滤
+ *
+ * @param tableName 表名
+ * @return 是否进行过滤
+ */
+ @Override
+ public boolean doTableFilter(String tableName) {
+ return !ArrayUtil.contains(TENANT_TABLES, tableName);
+ }
+}
diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantContextHolder.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolder.java
similarity index 96%
rename from pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantContextHolder.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolder.java
index 0679f76ef..785ea86c5 100644
--- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/TenantContextHolder.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolder.java
@@ -15,7 +15,7 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.common.core.util;
+package com.pig4cloud.pigx.common.data.tenant;
import com.alibaba.ttl.TransmittableThreadLocal;
import lombok.experimental.UtilityClass;
diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/filter/TenantContextHolderFilter.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolderFilter.java
similarity index 95%
rename from pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/filter/TenantContextHolderFilter.java
rename to pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolderFilter.java
index b72cfd21d..6d2ab51e8 100644
--- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/filter/TenantContextHolderFilter.java
+++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/tenant/TenantContextHolderFilter.java
@@ -15,11 +15,10 @@
* Author: lengleng (wangiegie@gmail.com)
*/
-package com.pig4cloud.pigx.common.security.filter;
+package com.pig4cloud.pigx.common.data.tenant;
import cn.hutool.core.util.StrUtil;
import com.pig4cloud.pigx.common.core.constant.CommonConstants;
-import com.pig4cloud.pigx.common.core.util.TenantContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
diff --git a/pigx-common/pigx-common-data/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-data/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..5de28f3dc
--- /dev/null
+++ b/pigx-common/pigx-common-data/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,7 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+ com.pig4cloud.pigx.common.data.cache.RedisTemplateConfig,\
+ com.pig4cloud.pigx.common.data.cache.RedisCacheManagerConfig,\
+ com.pig4cloud.pigx.common.data.cache.RedisCacheAutoConfiguration,\
+ com.pig4cloud.pigx.common.data.tenant.TenantContextHolderFilter,\
+ com.pig4cloud.pigx.common.data.tenant.PigxFeignTenantConfiguration,\
+ com.pig4cloud.pigx.common.data.mybatis.MybatisPlusConfig
\ No newline at end of file
diff --git a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java
index e2ee5be47..f2a5f4d1f 100644
--- a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java
+++ b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/support/RedisRouteDefinitionWriter.java
@@ -26,6 +26,7 @@ import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionRepository;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -51,6 +52,7 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository {
RouteDefinitionVo vo = new RouteDefinitionVo();
BeanUtils.copyProperties(r, vo);
log.info("保存路由信息{}", vo);
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.opsForHash().put(CommonConstants.ROUTE_KEY, r.getId(), vo);
return Mono.empty();
});
@@ -60,6 +62,7 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository {
public Mono delete(Mono routeId) {
routeId.subscribe(id -> {
log.info("删除路由信息{}", id);
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.opsForHash().delete(CommonConstants.ROUTE_KEY, id);
});
return Mono.empty();
@@ -73,6 +76,7 @@ public class RedisRouteDefinitionWriter implements RouteDefinitionRepository {
*/
@Override
public Flux getRouteDefinitions() {
+ redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(RouteDefinitionVo.class));
List values = redisTemplate.opsForHash().values(CommonConstants.ROUTE_KEY);
List definitionList = new ArrayList<>();
diff --git a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories
index 72cd2a9cd..de96a918e 100644
--- a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories
+++ b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories
@@ -1,5 +1,4 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- com.pig4cloud.pigx.common.security.filter.TenantContextHolderFilter,\
com.pig4cloud.pigx.common.security.feign.PigxFeignClientConfiguration,\
- com.pig4cloud.pigx.common.security.feign.PigxFeignTenantConfiguration,\
+ com.pig4cloud.pigx.common.data.tenant.PigxFeignTenantConfiguration,\
com.pig4cloud.pigx.common.security.service.PigxUserDetailsServiceImpl
diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml
index de4b26fa7..35eec4fa1 100644
--- a/pigx-common/pom.xml
+++ b/pigx-common/pom.xml
@@ -33,8 +33,8 @@
pigx 公共聚合模块
- pigx-common-cache
pigx-common-core
+ pigx-common-data
pigx-common-gateway
pigx-common-job
pigx-common-log
diff --git a/pigx-gateway/pom.xml b/pigx-gateway/pom.xml
index 0b52802d8..fc5f50835 100644
--- a/pigx-gateway/pom.xml
+++ b/pigx-gateway/pom.xml
@@ -67,9 +67,8 @@