Commit 54cbd841 by guominglei

修改解析返回实体问题

parent 53e1ccce
......@@ -18,10 +18,6 @@
<artifactId>myth-admin-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
......
......@@ -17,8 +17,8 @@
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
......
......@@ -6,7 +6,6 @@ import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
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
**/
@RestControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice {
public class ResponseAdvice implements ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter methodParameter, Class aClass) {
if (aClass.isAnnotationPresent(RestController.class)){
return true;
}
return false;
return true;
}
/**
*
* @param res 返回结果
* @param body 返回结果
* @param methodParameter 方法参数
* @param mediaType
* @param aClass
......@@ -36,11 +32,11 @@ public class ResponseAdvice implements ResponseBodyAdvice {
* @return
*/
@Override
public Object beforeBodyWrite(Object res, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
if(!(res instanceof ResponseResult)){
return JSON.toJSONString(ResponseResult.ok(res));
public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
if (body instanceof ResponseResult){
return body;
}
return res;
return JSON.toJSONString(ResponseResult.ok(body));
}
......
......@@ -39,15 +39,15 @@ public class LoginFilter extends ZuulFilter {
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();
log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));
Object a = request.getParameter("a");
if(a != null) {
log.info("{} request from {}", request.getMethod(), request.getRemoteAddr());
log.info("{} request to {}", request.getMethod(), request.getRequestURL().toString());
String token = request.getHeader("token");
if(null == token || "".equals(token)) {
log.warn("param a is empty");
ctx.setSendZuulResponse(false);
ctx.setResponseStatusCode(401);
ctx.setResponseStatusCode(403);
return false;
}
log.info("param a is : " + a);
return true;
}
}
......@@ -34,6 +34,8 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
private String biz;
@Value("${gateway.load.balance}")
private String gatewayLoadBalance;
@Value("${myth-rpc.registry.env}")
private String env;
private List<ZuulRouteEntity> locateRouteList;
......@@ -49,7 +51,7 @@ public class ZuulRouteDatabaseLocator extends ZuulRouteLocator {
public Map<String, ZuulRoute> loadLocateRoute() {
locateRouteList = new ArrayList<>();
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);
logger.info(locateRouteMapList.toString());
......
......@@ -20,94 +20,94 @@ import java.util.Map;
*/
public abstract class ZuulRouteLocator extends SimpleRouteLocator implements RefreshableRouteLocator {
private final static Logger logger = LoggerFactory.getLogger(ZuulRouteLocator.class);
private ZuulProperties properties;
private final static Logger logger = LoggerFactory.getLogger(ZuulRouteLocator.class);
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();
private ZuulProperties properties;
@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());
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() {
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.setId(locateRoute.getId());
zuulRoute.setPath(locateRoute.getPath());
//是否需要重试
zuulRoute.setRetryable(false);
zuulRoute.setServiceId(locateRoute.getServiceId());
//是否去掉前缀
zuulRoute.setStripPrefix(true);
zuulRoute.setUrl(locateRoute.getUrl());
logger.info("add zuul route: " + JSON.toJSONString(zuulRoute));
} catch (Exception e) {
logger.error("=============load zuul route info from db with error==============", e);
}
routes.put(zuulRoute.getPath(), zuulRoute);
}
return routes;
}
zuulRoute.setId(locateRoute.getId());
zuulRoute.setPath(locateRoute.getPath());
//是否需要重试
zuulRoute.setRetryable(false);
zuulRoute.setServiceId(locateRoute.getServiceId());
//是否去掉前缀
zuulRoute.setStripPrefix(true);
zuulRoute.setUrl(locateRoute.getUrl());
logger.info("add zuul route: " + JSON.toJSONString(zuulRoute));
} catch (Exception e) {
logger.error("=============load zuul route info from db with error==============", e);
}
routes.put(zuulRoute.getPath(), zuulRoute);
}
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