Browse Source

chore: 支持加密

master
wangxiang 2 years ago
parent
commit
7aa94d38b3
  1. 6
      kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/config/GatewayConfigProperties.java
  2. 1
      kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories
  3. 2
      kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/PasswordDecoderFilter.java
  4. 2
      kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java
  5. 34
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java

6
kicc-gateway/src/main/java/com/cloud/kicc/gateway/config/GatewayConfigProperties.java → kicc-common/kicc-common-core/src/main/java/com/cloud/kicc/common/core/config/GatewayConfigProperties.java

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
package com.cloud.kicc.gateway.config;
package com.cloud.kicc.common.core.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ -20,12 +20,12 @@ import java.util.List; @@ -20,12 +20,12 @@ import java.util.List;
public class GatewayConfigProperties {
/**
* 网关解密登录前端密码 秘钥 {@link com.cloud.kicc.gateway.filter.PasswordDecoderFilter}
* 网关解密登录前端密码
*/
private String encodeKey;
/**
* 网关忽略不需要校验验证码是否合法的客户端 {@link com.cloud.kicc.gateway.filter.ValidateCodeGatewayFilter}
* 网关忽略不需要校验验证码是否合法的客户端
*/
private List<String> ignoreClients;

1
kicc-common/kicc-common-core/src/main/resources/META-INF/spring.factories

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.cloud.kicc.common.core.config.WebMvcConfiguration,\
com.cloud.kicc.common.core.config.RestTemplateConfiguration,\
com.cloud.kicc.common.core.config.GatewayConfigProperties,\
com.cloud.kicc.common.core.util.SpringContextHolderUtil

2
kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/PasswordDecoderFilter.java

@ -6,8 +6,8 @@ import cn.hutool.crypto.Mode; @@ -6,8 +6,8 @@ import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.http.HttpUtil;
import com.cloud.kicc.common.core.config.GatewayConfigProperties;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.gateway.config.GatewayConfigProperties;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.gateway.filter.GatewayFilter;

2
kicc-gateway/src/main/java/com/cloud/kicc/gateway/filter/ValidateCodeGatewayFilter.java

@ -3,12 +3,12 @@ package com.cloud.kicc.gateway.filter; @@ -3,12 +3,12 @@ package com.cloud.kicc.gateway.filter;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.cloud.kicc.common.core.config.GatewayConfigProperties;
import com.cloud.kicc.common.core.constant.CacheConstants;
import com.cloud.kicc.common.core.constant.SecurityConstants;
import com.cloud.kicc.common.core.exception.ValidateCodeException;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.util.WebUtil;
import com.cloud.kicc.gateway.config.GatewayConfigProperties;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;

34
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/bigscreen/controller/VisualDbController.java

@ -1,25 +1,34 @@ @@ -1,25 +1,34 @@
package com.cloud.kicc.system.bigscreen.controller;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.AES;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.kicc.common.core.api.R;
import com.cloud.kicc.common.core.config.GatewayConfigProperties;
import com.cloud.kicc.common.core.constant.AppConstants;
import com.cloud.kicc.common.core.exception.CheckedException;
import com.cloud.kicc.system.api.bigscreen.dto.DynamicModelDto;
import com.cloud.kicc.system.api.bigscreen.dto.VisualDbDto;
import com.cloud.kicc.system.api.bigscreen.entity.Visual;
import com.cloud.kicc.system.api.bigscreen.entity.VisualDb;
import com.cloud.kicc.system.bigscreen.service.IVisualDbService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@ -40,6 +49,7 @@ import java.util.List; @@ -40,6 +49,7 @@ import java.util.List;
public class VisualDbController {
private final IVisualDbService visualDbService;
private final GatewayConfigProperties gatewayConfig;
private LambdaQueryWrapper<VisualDb> getQueryWrapper(VisualDb visualDb) {
return new LambdaQueryWrapper<VisualDb>()
@ -99,8 +109,14 @@ public class VisualDbController { @@ -99,8 +109,14 @@ public class VisualDbController {
@PostMapping("/db-test")
@ApiOperation(value = "数据源测试连接", notes = "数据源测试连接")
public R<Boolean> dbTest(@RequestBody VisualDb db) {
return R.ok(visualDbService.dbTest(db));
public R<Boolean> dbTest(HttpServletRequest request) throws IOException {
byte[] bytes = IoUtil.readBytes(request.getInputStream());
String bag = StrUtil.str(bytes, Charset.forName("utf-8"));
AES aes = new AES(Mode.CBC, Padding.PKCS5Padding,
new SecretKeySpec(gatewayConfig.getEncodeKey().getBytes(), "AES"),
new IvParameterSpec(gatewayConfig.getEncodeKey().getBytes()));
VisualDb visualDb = JSONUtil.toBean(aes.decryptStr(bag), VisualDb.class);
return R.ok(visualDbService.dbTest(visualDb));
}
@GetMapping("/db-list")
@ -111,7 +127,13 @@ public class VisualDbController { @@ -111,7 +127,13 @@ public class VisualDbController {
@PostMapping("dynamic-query")
@ApiOperation(value = "动态执行SQL", notes = "动态执行SQL")
public R dynamicQuery(@RequestBody DynamicModelDto model) {
public R dynamicQuery(HttpServletRequest request) throws IOException {
byte[] bytes = IoUtil.readBytes(request.getInputStream());
String bag = StrUtil.str(bytes, Charset.forName("utf-8"));
AES aes = new AES(Mode.CBC, Padding.PKCS5Padding,
new SecretKeySpec(gatewayConfig.getEncodeKey().getBytes(), "AES"),
new IvParameterSpec(gatewayConfig.getEncodeKey().getBytes()));
DynamicModelDto model = JSONUtil.toBean(aes.decryptStr(bag), DynamicModelDto.class);
VisualDb visualDb = visualDbService.getById(model.getId());
List<LinkedHashMap<String, Object>> linkedHashMaps = visualDbService.dynamicQuery(visualDb, model.getSql());
return R.ok(linkedHashMaps);

Loading…
Cancel
Save