zuul 配置

zuul 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

#url转发
#zuul.routes.api-a-url.path=/api-a/**
#zuul.routes.api-a-url.url=http://127.0.0.1:9000/

#结合eureka 进行服务转发
zuul.routes.agent.path=/project/**
zuul.routes.agent.serviceId=project-center

zuul.routes.user-center.path=/uc/**
zuul.routes.user-center.serviceId=user-center

zuul.routes.eureka=/eureka/**
zuul.routes.eureka.serviceId=eureka-server

#此外结合eureka
eureka.client.service-url.defaultZone=http://eureka.wuxinvip.com/


#以及结合config配置【以下配置需要放到bootstrap.properties中】

#可以通过eureka注册中心获取配置中心
spring.application.name=api-gateway
#eureka.client.service-url.defaultZone=http://eureka.wuxinvip.com/
#spring.cloud.config.discovery.enabled=true
#spring.cloud.config.discovery.service-id=CONFIG-SERVER

#也可以采用此种配置获取uri地址
spring.application.name=api-gateway
spring.cloud.config.uri=http://config.wuxinvip.com

{———-}

zuul自定义拦截器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47



/**
* @title:
* @description:
* @author: 无心
* @date:2019/4/17 13:03
* @location com.wuxinvip.apigateway.route.DemoFilter.class
*/
public class DemoFilter extends ZuulFilter {

private static Logger logger = LoggerFactory.getLogger(DemoFilter.class);

//前置过滤器
@Override
public String filterType() {
return null;
}
//优先级,数字越大,优先级越低
@Override
public int filterOrder() {
return 0;
}
//是否执行该过滤器,true代表需要过滤
@Override
public boolean shouldFilter() {
return false;
}

@Override
public Object run() throws ZuulException {
RequestContext ctx = RequestContext.getCurrentContext();
HttpServletRequest request = ctx.getRequest();

logger.info("send {} request to {}", request.getMethod(), request.getRequestURL().toString());

//获取传来的参数accessToken
Object accessToken = request.getParameter("token");

//TODO
//toke验证 可以选择连接redis、也可以选择连接权限组件、

//这里return的值没有意义,zuul框架没有使用该返回值
return null;
}
}