1. 修复拆出的业务模块无法自动加载数据权限的bug
This commit is contained in:
@@ -7,6 +7,8 @@ import org.springframework.boot.autoconfigure.AutoConfigurationPackages;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
@@ -18,14 +20,12 @@ import java.util.Set;
|
||||
public class BusinessDataPermissionConfiguration {
|
||||
|
||||
@Bean
|
||||
public BusinessDataPermissionEntityScanner businessDataPermissionEntityScanner(BeanFactory beanFactory, ApplicationContext applicationContext) {
|
||||
public BusinessDataPermissionEntityScanner businessDataPermissionEntityScanner(BeanFactory beanFactory, ApplicationContext applicationContext, Environment environment) {
|
||||
Set<String> basePackages = new LinkedHashSet<>();
|
||||
addConfiguredBasePackages(environment, basePackages);
|
||||
if (AutoConfigurationPackages.has(beanFactory)) {
|
||||
basePackages.addAll(AutoConfigurationPackages.get(beanFactory));
|
||||
}
|
||||
if (basePackages.isEmpty()) {
|
||||
basePackages.add("com.zt");
|
||||
}
|
||||
ClassLoader classLoader = applicationContext != null
|
||||
? applicationContext.getClassLoader()
|
||||
: Thread.currentThread().getContextClassLoader();
|
||||
@@ -35,6 +35,21 @@ public class BusinessDataPermissionConfiguration {
|
||||
return new BusinessDataPermissionEntityScanner(basePackages, classLoader);
|
||||
}
|
||||
|
||||
private void addConfiguredBasePackages(Environment environment, Set<String> basePackages) {
|
||||
if (environment == null) {
|
||||
return;
|
||||
}
|
||||
String configured = environment.getProperty("zt.info.base-package");
|
||||
if (!StringUtils.hasText(configured)) {
|
||||
return;
|
||||
}
|
||||
for (String pkg : configured.split("[,;\\s]+")) {
|
||||
if (StringUtils.hasText(pkg)) {
|
||||
basePackages.add(pkg.trim());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Bean
|
||||
public CompanyDataPermissionRuleCustomizer autoCompanyDataPermissionRuleCustomizer(BusinessDataPermissionEntityScanner scanner) {
|
||||
return rule -> scanner.getEntityMetadata().forEach(metadata -> {
|
||||
|
||||
Reference in New Issue
Block a user