Commit 54cbd841 by guominglei

修改解析返回实体问题

parent 53e1ccce
...@@ -18,10 +18,6 @@ ...@@ -18,10 +18,6 @@
<artifactId>myth-admin-core</artifactId> <artifactId>myth-admin-core</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
......
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-webmvc</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -6,7 +6,6 @@ import org.springframework.core.MethodParameter; ...@@ -6,7 +6,6 @@ import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest; import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse; import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
...@@ -17,17 +16,14 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; ...@@ -17,17 +16,14 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
* @date: 2019/12/25 16:57 * @date: 2019/12/25 16:57
**/ **/
@RestControllerAdvice @RestControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice { public class ResponseAdvice implements ResponseBodyAdvice<Object> {
@Override @Override
public boolean supports(MethodParameter methodParameter, Class aClass) { public boolean supports(MethodParameter methodParameter, Class aClass) {
if (aClass.isAnnotationPresent(RestController.class)){ return true;
return true;
}
return false;
} }
/** /**
* *
* @param res 返回结果 * @param body 返回结果
* @param methodParameter 方法参数 * @param methodParameter 方法参数
* @param mediaType * @param mediaType
* @param aClass * @param aClass
...@@ -36,11 +32,11 @@ public class ResponseAdvice implements ResponseBodyAdvice { ...@@ -36,11 +32,11 @@ public class ResponseAdvice implements ResponseBodyAdvice {
* @return * @return
*/ */
@Override @Override
public Object beforeBodyWrite(Object res, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
if(!(res instanceof ResponseResult)){ if (body instanceof ResponseResult){
return JSON.toJSONString(ResponseResult.ok(res)); return body;
} }
return res; return JSON.toJSONString(ResponseResult.ok(body));
} }
......
...@@ -39,15 +39,15 @@ public class LoginFilter extends ZuulFilter { ...@@ -39,15 +39,15 @@ public class LoginFilter extends ZuulFilter {
public Object run() { public Object run() {
RequestContext ctx = RequestContext.getCurrentContext(); RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest(); HttpServletRequest request = ctx.getRequest();
log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString())); log.info("{} request from {}", request.getMethod(), request.getRemoteAddr());
Object a = request.getParameter("a"); log.info("{} request to {}", request.getMethod(), request.getRequestURL().toString());
if(a != null) { String token = request.getHeader("token");
if(null == token || "".equals(token)) {
log.warn("param a is empty"); log.warn("param a is empty");
ctx.setSendZuulResponse(false); ctx.setSendZuulResponse(false);
ctx.setResponseStatusCode(401); ctx.setResponseStatusCode(403);
return false; return false;
} }
log.info("param a is : " + a);
return true; return true;
} }
} }
...@@ -34,6 +34,8 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator { ...@@ -34,6 +34,8 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
private String biz; private String biz;
@Value("${gateway.load.balance}") @Value("${gateway.load.balance}")
private String gatewayLoadBalance; private String gatewayLoadBalance;
@Value("${myth-rpc.registry.env}")
private String env;
private List<ZuulRouteEntity> locateRouteList; private List<ZuulRouteEntity> locateRouteList;
...@@ -49,7 +51,7 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator { ...@@ -49,7 +51,7 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
public Map<String, ZuulRoute> loadLocateRoute() { public Map<String, ZuulRoute> loadLocateRoute() {
locateRouteList = new ArrayList<>(); locateRouteList = new ArrayList<>();
try { try {
String sql = "select * from myth_registry where status = 0 and locate('.',`key`) = 0 and biz = '" + biz + "'"; String sql = "select * from myth_registry where status = 0 and env = '"+ env +"' and locate('.',`key`) = 0 and biz = '" + biz + "'";
List<Map<String, Object>> locateRouteMapList = jdbcTemplate.queryForList(sql); List<Map<String, Object>> locateRouteMapList = jdbcTemplate.queryForList(sql);
logger.info(locateRouteMapList.toString()); logger.info(locateRouteMapList.toString());
......
...@@ -20,94 +20,94 @@ import java.util.Map; ...@@ -20,94 +20,94 @@ import java.util.Map;
*/ */
public abstract class ZuulRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator { public abstract class ZuulRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator {
private final static Logger logger = LoggerFactory.getLogger(ZuulRouteLocator.class); private final static Logger logger = LoggerFactory.getLogger(ZuulRouteLocator.class);
private ZuulProperties properties;
private ZuulProperties properties;
public ZuulRouteLocator(String servletPath, ZuulProperties properties) {
super(servletPath, properties);
this.properties = properties;
logger.info("servletPath:{}", servletPath);
}
@Override
public void refresh() {
doRefresh();
}
@Override
protected Map<String, ZuulRoute> locateRoutes() {
LinkedHashMap<String, ZuulRoute> routesMap = new LinkedHashMap<>();
// 从application.properties中加载路由信息
Map<String, ZuulRoute> locateRoutesMap = loadLocateRoute();
if (!CollectionUtils.isEmpty(locateRoutesMap)) {
routesMap.putAll(locateRoutesMap);
}
// 优化一下配置
LinkedHashMap<String, ZuulRoute> values = new LinkedHashMap<>();
for (Map.Entry<String, ZuulRoute> entry : routesMap.entrySet()) {
String path = entry.getKey();
// Prepend with slash if not already present.
if (!path.startsWith("/")) {
path = "/" + path;
}
if (StringUtils.hasText(this.properties.getPrefix())) {
path = this.properties.getPrefix() + path;
if (!path.startsWith("/")) {
path = "/" + path;
}
}
values.put(path, entry.getValue());
}
return values;
}
/**
* 加载路由配置,由子类去实现
*/
public abstract Map<String, ZuulRoute> loadLocateRoute();
@Override
public int getOrder() { public ZuulRouteLocator(String servletPath, ZuulProperties properties) {
return -1; super(servletPath, properties);
} this.properties = properties;
logger.info("servletPath:{}", servletPath);
/** }
* 复制查询出来的数据的属性
*/ @Override
public Map<String, ZuulRoute> handle(List<ZuulRouteEntity> locateRouteList){ public void refresh() {
if(CollectionUtils.isEmpty(locateRouteList)){ doRefresh();
return null; }
}
Map<String, ZuulRoute> routes = new LinkedHashMap<>(); @Override
for (ZuulRouteEntity locateRoute : locateRouteList) { protected Map<String, ZuulRoute> locateRoutes() {
if (StringUtils.isEmpty(locateRoute.getPath()) LinkedHashMap<String, ZuulRoute> routesMap = new LinkedHashMap<>();
|| !locateRoute.isEnable() // 从application.properties中加载路由信息
|| (StringUtils.isEmpty(locateRoute.getUrl()) && StringUtils.isEmpty(locateRoute.getServiceId()))) { Map<String, ZuulRoute> locateRoutesMap = loadLocateRoute();
continue; if (!CollectionUtils.isEmpty(locateRoutesMap)) {
} routesMap.putAll(locateRoutesMap);
ZuulRoute zuulRoute = new ZuulRoute(); }
try { // 优化一下配置
//zuulRoute.setCustomSensitiveHeaders(locateRoute.isCustomSensitiveHeaders()); LinkedHashMap<String, ZuulRoute> values = new LinkedHashMap<>();
//zuulRoute.setSensitiveHeaders(locateRoute.getSensitiveHeadersSet()); for (Map.Entry<String, ZuulRoute> entry : routesMap.entrySet()) {
//zuulRoute.setId(locateRoute.getId()); String path = entry.getKey();
// Prepend with slash if not already present.
if (!path.startsWith("/")) {
path = "/" + path;
}
if (StringUtils.hasText(this.properties.getPrefix())) {
path = this.properties.getPrefix() + path;
if (!path.startsWith("/")) {
path = "/" + path;
}
}
values.put(path, entry.getValue());
}
return values;
}
/**
* 加载路由配置,由子类去实现
*/
public abstract Map<String, ZuulRoute> loadLocateRoute();
@Override
public int getOrder() {
return -1;
}
/**
* 复制查询出来的数据的属性
*/
public Map<String, ZuulRoute> handle(List<ZuulRouteEntity> locateRouteList) {
if (CollectionUtils.isEmpty(locateRouteList)) {
return null;
}
Map<String, ZuulRoute> routes = new LinkedHashMap<>();
for (ZuulRouteEntity locateRoute : locateRouteList) {
if (StringUtils.isEmpty(locateRoute.getPath())
|| !locateRoute.isEnable()
|| (StringUtils.isEmpty(locateRoute.getUrl()) && StringUtils.isEmpty(locateRoute.getServiceId()))) {
continue;
}
ZuulRoute zuulRoute = new ZuulRoute();
try {
//zuulRoute.setCustomSensitiveHeaders(locateRoute.isCustomSensitiveHeaders());
//zuulRoute.setSensitiveHeaders(locateRoute.getSensitiveHeadersSet());
//zuulRoute.setId(locateRoute.getId());
// zuulRoute.setLocation(""); // zuulRoute.setLocation("");
zuulRoute.setId(locateRoute.getId()); zuulRoute.setId(locateRoute.getId());
zuulRoute.setPath(locateRoute.getPath()); zuulRoute.setPath(locateRoute.getPath());
//是否需要重试 //是否需要重试
zuulRoute.setRetryable(false); zuulRoute.setRetryable(false);
zuulRoute.setServiceId(locateRoute.getServiceId()); zuulRoute.setServiceId(locateRoute.getServiceId());
//是否去掉前缀 //是否去掉前缀
zuulRoute.setStripPrefix(true); zuulRoute.setStripPrefix(true);
zuulRoute.setUrl(locateRoute.getUrl()); zuulRoute.setUrl(locateRoute.getUrl());
logger.info("add zuul route: " + JSON.toJSONString(zuulRoute)); logger.info("add zuul route: " + JSON.toJSONString(zuulRoute));
} catch (Exception e) { } catch (Exception e) {
logger.error("=============load zuul route info from db with error==============", e); logger.error("=============load zuul route info from db with error==============", e);
} }
routes.put(zuulRoute.getPath(), zuulRoute); routes.put(zuulRoute.getPath(), zuulRoute);
} }
return routes; return routes;
} }
} }
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