Commit a922654e by yuwei

2.0.0项目初始化

parent a8ee3197
...@@ -10,7 +10,8 @@ import cn.hutool.core.collection.CollUtil; ...@@ -10,7 +10,8 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
...@@ -30,6 +31,9 @@ public class DataUserDetailService implements UserDetailsService { ...@@ -30,6 +31,9 @@ public class DataUserDetailService implements UserDetailsService {
@Autowired @Autowired
private UserServiceFeign userServiceFeign; private UserServiceFeign userServiceFeign;
@Autowired
private ObjectMapper objectMapper;
@Override @Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
//远程获取用户 //远程获取用户
...@@ -37,7 +41,12 @@ public class DataUserDetailService implements UserDetailsService { ...@@ -37,7 +41,12 @@ public class DataUserDetailService implements UserDetailsService {
if(result == null || !result.isSuccess() || ObjectUtil.isEmpty(result.getData())){ if(result == null || !result.isSuccess() || ObjectUtil.isEmpty(result.getData())){
throw new UsernameNotFoundException(StrUtil.format("{}用户不存在", s)); throw new UsernameNotFoundException(StrUtil.format("{}用户不存在", s));
} }
UserInfo userInfo = JSON.parseObject(JSON.toJSONString(result.getData()), UserInfo.class); UserInfo userInfo;
try {
userInfo = objectMapper.readValue(objectMapper.writeValueAsString(result.getData()), UserInfo.class);
} catch (JsonProcessingException e) {
throw new UsernameNotFoundException(StrUtil.format("{}用户解析出错", s));
}
// 可用性 :true:可用 false:不可用 // 可用性 :true:可用 false:不可用
boolean enabled = true; boolean enabled = true;
// 过期性 :true:没过期 false:过期 // 过期性 :true:没过期 false:过期
......
...@@ -49,11 +49,6 @@ ...@@ -49,11 +49,6 @@
<version>${hutool.version}</version> <version>${hutool.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId> <artifactId>mybatis-plus-extension</artifactId>
<version>${mybatis-plus.version}</version> <version>${mybatis-plus.version}</version>
......
package cn.datax.common.utils; package cn.datax.common.utils;
import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
...@@ -20,7 +20,8 @@ public class ResponseUtil { ...@@ -20,7 +20,8 @@ public class ResponseUtil {
int status, Object value) throws IOException { int status, Object value) throws IOException {
response.setContentType(contentType); response.setContentType(contentType);
response.setStatus(status); response.setStatus(status);
response.getOutputStream().write(JSON.toJSONString(value).getBytes()); ObjectMapper objectMapper = new ObjectMapper();
response.getOutputStream().write(objectMapper.writeValueAsBytes(value));
} }
} }
...@@ -15,7 +15,8 @@ import cn.datax.service.data.market.api.feign.DataApiServiceFeign; ...@@ -15,7 +15,8 @@ import cn.datax.service.data.market.api.feign.DataApiServiceFeign;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
...@@ -44,6 +45,9 @@ public class ApiInterceptor implements HandlerInterceptor { ...@@ -44,6 +45,9 @@ public class ApiInterceptor implements HandlerInterceptor {
@Autowired @Autowired
private ApiLogService apiLogService; private ApiLogService apiLogService;
@Autowired
private ObjectMapper objectMapper;
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("************ApiInterceptor preHandle executed**********"); System.out.println("************ApiInterceptor preHandle executed**********");
...@@ -67,7 +71,11 @@ public class ApiInterceptor implements HandlerInterceptor { ...@@ -67,7 +71,11 @@ public class ApiInterceptor implements HandlerInterceptor {
HttpServletResponse.SC_FORBIDDEN, R.error("查询API{" + apiId + "}出错")); HttpServletResponse.SC_FORBIDDEN, R.error("查询API{" + apiId + "}出错"));
return false; return false;
} }
DataApiEntity dataApiEntity = JSON.parseObject(JSON.toJSONString(apiResult.getData()), DataApiEntity.class); DataApiEntity dataApiEntity = null;
try {
dataApiEntity = objectMapper.readValue(objectMapper.writeValueAsString(apiResult.getData()), DataApiEntity.class);
} catch (JsonProcessingException e) {
}
if (dataApiEntity == null) { if (dataApiEntity == null) {
ResponseUtil.makeResponse(response, MediaType.APPLICATION_JSON_VALUE, ResponseUtil.makeResponse(response, MediaType.APPLICATION_JSON_VALUE,
HttpServletResponse.SC_FORBIDDEN, R.error("API不存在")); HttpServletResponse.SC_FORBIDDEN, R.error("API不存在"));
...@@ -92,12 +100,17 @@ public class ApiInterceptor implements HandlerInterceptor { ...@@ -92,12 +100,17 @@ public class ApiInterceptor implements HandlerInterceptor {
} }
// 接收参数 // 接收参数
String bodyString = HttpUtil.getBodyString(request); String bodyString = HttpUtil.getBodyString(request);
Map<String, Object> params = JSON.parseObject(bodyString); Map<String, Object> params = null;
try {
params = objectMapper.readValue(bodyString, Map.class);
} catch (JsonProcessingException e) {
}
Map<String, Object> finalParams = params;
dataApiEntity.getReqParams().stream().forEach(param -> { dataApiEntity.getReqParams().stream().forEach(param -> {
if (params.containsKey(param.getParamName())) { if (finalParams.containsKey(param.getParamName())) {
Integer dataType = param.getDataType(); Integer dataType = param.getDataType();
// 数据类型是否正确 // 数据类型是否正确
DataType.parse(DataType.getDataType(dataType), params.get(param.getParamName())); DataType.parse(DataType.getDataType(dataType), finalParams.get(param.getParamName()));
} }
}); });
String apiName = dataApiEntity.getApiName(); String apiName = dataApiEntity.getApiName();
......
...@@ -24,7 +24,8 @@ import cn.datax.service.data.market.api.feign.ApiMaskServiceFeign; ...@@ -24,7 +24,8 @@ import cn.datax.service.data.market.api.feign.ApiMaskServiceFeign;
import cn.datax.service.data.market.api.feign.DataApiServiceFeign; import cn.datax.service.data.market.api.feign.DataApiServiceFeign;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -49,6 +50,9 @@ public class ApiCallServiceImpl implements ApiCallService { ...@@ -49,6 +50,9 @@ public class ApiCallServiceImpl implements ApiCallService {
@Autowired @Autowired
private ApiMaskServiceFeign apiMaskServiceFeign; private ApiMaskServiceFeign apiMaskServiceFeign;
@Autowired
private ObjectMapper objectMapper;
@Override @Override
public PageResult<Map<String, Object>> v1() { public PageResult<Map<String, Object>> v1() {
R apiResult = dataApiServiceFeign.getDataApiById(ThreadUtil.getInstance().get().getApiId()); R apiResult = dataApiServiceFeign.getDataApiById(ThreadUtil.getInstance().get().getApiId());
...@@ -57,20 +61,32 @@ public class ApiCallServiceImpl implements ApiCallService { ...@@ -57,20 +61,32 @@ public class ApiCallServiceImpl implements ApiCallService {
ThreadUtil.getInstance().get().setMsg("API调用查询数据API{" + ThreadUtil.getInstance().get().getApiId() + "}出错"); ThreadUtil.getInstance().get().setMsg("API调用查询数据API{" + ThreadUtil.getInstance().get().getApiId() + "}出错");
throw new DataException("API调用查询数据API出错"); throw new DataException("API调用查询数据API出错");
} }
DataApiEntity dataApiEntity = JSON.parseObject(JSON.toJSONString(apiResult.getData()), DataApiEntity.class); DataApiEntity dataApiEntity = null;
try {
dataApiEntity = objectMapper.readValue(objectMapper.writeValueAsString(apiResult.getData()), DataApiEntity.class);
} catch (JsonProcessingException e) {
}
R sourceResult = dataSourceServiceFeign.getDataSourceById(dataApiEntity.getExecuteConfig().getSourceId()); R sourceResult = dataSourceServiceFeign.getDataSourceById(dataApiEntity.getExecuteConfig().getSourceId());
if(sourceResult == null || !sourceResult.isSuccess() || ObjectUtil.isEmpty(sourceResult.getData())){ if(sourceResult == null || !sourceResult.isSuccess() || ObjectUtil.isEmpty(sourceResult.getData())){
ThreadUtil.getInstance().get().setStatus(0); ThreadUtil.getInstance().get().setStatus(0);
ThreadUtil.getInstance().get().setMsg("API调用查询数据源{"+dataApiEntity.getExecuteConfig().getSourceId()+"}出错"); ThreadUtil.getInstance().get().setMsg("API调用查询数据源{"+dataApiEntity.getExecuteConfig().getSourceId()+"}出错");
throw new DataException("API调用查询数据源出错"); throw new DataException("API调用查询数据源出错");
} }
DataSourceEntity dataSource = JSON.parseObject(JSON.toJSONString(sourceResult.getData()), DataSourceEntity.class); DataSourceEntity dataSource = null;
try {
dataSource = objectMapper.readValue(objectMapper.writeValueAsString(sourceResult.getData()), DataSourceEntity.class);
} catch (JsonProcessingException e) {
}
DbSchema dbSchema = dataSource.getDbSchema(); DbSchema dbSchema = dataSource.getDbSchema();
DbQueryProperty dbQueryProperty = new DbQueryProperty(dataSource.getDbType(), dbSchema.getHost(), DbQueryProperty dbQueryProperty = new DbQueryProperty(dataSource.getDbType(), dbSchema.getHost(),
dbSchema.getUsername(), dbSchema.getPassword(), dbSchema.getPort(), dbSchema.getDbName()); dbSchema.getUsername(), dbSchema.getPassword(), dbSchema.getPort(), dbSchema.getDbName());
DbQuery dbQuery = dataSourceFactory.createDbQuery(dbQueryProperty); DbQuery dbQuery = dataSourceFactory.createDbQuery(dbQueryProperty);
// 接收参数 // 接收参数
Map<String, Object> params = JSON.parseObject(ThreadUtil.getInstance().get().getCallerParams()); Map<String, Object> params = null;
try {
params = objectMapper.readValue(ThreadUtil.getInstance().get().getCallerParams(), Map.class);
} catch (JsonProcessingException e) {
}
// 分页参数 // 分页参数
Integer pageNum = (Integer) Optional.ofNullable(params.get("pageNum")).orElse(1); Integer pageNum = (Integer) Optional.ofNullable(params.get("pageNum")).orElse(1);
Integer pageSize = (Integer) Optional.ofNullable(params.get("pageSize")).orElse(20); Integer pageSize = (Integer) Optional.ofNullable(params.get("pageSize")).orElse(20);
...@@ -90,7 +106,11 @@ public class ApiCallServiceImpl implements ApiCallService { ...@@ -90,7 +106,11 @@ public class ApiCallServiceImpl implements ApiCallService {
List<FieldRule> rules = null; List<FieldRule> rules = null;
R maskResult = apiMaskServiceFeign.getApiMaskByApiId(ThreadUtil.getInstance().get().getApiId()); R maskResult = apiMaskServiceFeign.getApiMaskByApiId(ThreadUtil.getInstance().get().getApiId());
if(maskResult != null && maskResult.isSuccess() && ObjectUtil.isNotEmpty(maskResult.getData())){ if(maskResult != null && maskResult.isSuccess() && ObjectUtil.isNotEmpty(maskResult.getData())){
ApiMaskEntity apiMask = JSON.parseObject(JSON.toJSONString(maskResult.getData()), ApiMaskEntity.class); ApiMaskEntity apiMask = null;
try {
apiMask = objectMapper.readValue(objectMapper.writeValueAsString(maskResult.getData()), ApiMaskEntity.class);
} catch (JsonProcessingException e) {
}
rules = apiMask.getRules(); rules = apiMask.getRules();
} }
PageResult<Map<String, Object>> pageResult; PageResult<Map<String, Object>> pageResult;
......
package cn.datax.service.data.market.config; package cn.datax.service.data.market.config;
import cn.datax.common.redis.serializer.DataRedisSerializer; import cn.datax.common.redis.serializer.DataRedisSerializer;
import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
import org.springframework.cache.CacheManager; import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.annotation.EnableCaching;
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
<spring-cloud.version>Hoxton.SR3</spring-cloud.version> <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
<spring-boot-admin.version>2.2.1</spring-boot-admin.version> <spring-boot-admin.version>2.2.1</spring-boot-admin.version>
<fastjson.version>1.2.66</fastjson.version>
<hutool.version>5.2.3</hutool.version> <hutool.version>5.2.3</hutool.version>
<mybatis-plus.version>3.3.1</mybatis-plus.version> <mybatis-plus.version>3.3.1</mybatis-plus.version>
<dynamic-datasource.version>2.5.7</dynamic-datasource.version> <dynamic-datasource.version>2.5.7</dynamic-datasource.version>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment