代码拉取完成,页面将自动刷新
3.2.0
tenantId拼了两遍
pom 引入:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
插件配置:
@Bean
public PaginationInterceptor tenantInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
List<ISqlParser> sqlParserList = new ArrayList<>();
TenantSqlParser tenantSqlParser = new TenantSqlParser();
tenantSqlParser.setTenantHandler(new TenantHandler() {
/**租户值*/
@Override
public Expression getTenantId(boolean where) {
return singleTenantIdCondition();
}
private Expression singleTenantIdCondition() {
return new StringValue(UserHelper.getCurrentTenantId());
}
/**租户字段名*/
@Override
public String getTenantIdColumn() {
return SnowProperties.getTenantColumn();
}
/**过滤表*/
@Override
public boolean doTableFilter(String tableName) {
// 判断是否在租户清单中,不需要SQL解析处理
return TenantState.checkFilter(tableName);
}
});
//多租户解析
sqlParserList.add(tenantSqlParser);
// 攻击 SQL 阻断解析器、加入解析链> 作用!阻止恶意的全表更新删除
sqlParserList.add(new BlockAttackSqlParser());
paginationInterceptor.setSqlParserList(sqlParserList);
return paginationInterceptor;
}
### SQL: INSERT INTO sys_log (id, biz_type, request_method, is_exception, request_params, user_agent, request_uri, user_name, user_id, device_name, log_title, server_addr, tenant_id, browser_name, execute_time, remote_addr, tenant_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, '1')
### Cause: java.sql.SQLSyntaxErrorException: Column 'tenant_id' specified twice
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Column 'tenant_id' specified twice