黑马程序员技术交流社区

标题: 【郑州校区】学成在线-第17天-讲义-用户认证 Zuul 六 [打印本页]

作者: 我是楠楠    时间: 2020-1-8 15:39
标题: 【郑州校区】学成在线-第17天-讲义-用户认证 Zuul 六
【郑州校区】学成在线-第17天-讲义-用户认证 Zuul 六

4.4 路由配置
4.4.1需求分析
Zuul网关具有代理的功能,根据请求的url转发到微服务,如下图:


客户端请求网关/api/learning,通过路由转发到/learning
客户端请求网关/api/course,通过路由转发到/course
4.4.2 路由配置
appcation.yml中配置:
[AppleScript] 纯文本查看 复制代码
 zuul:
routes:
manage‐course: #路由名称,名称任意,保持所有路由名称唯一
path: /course/**
serviceId: xc‐service‐manage‐course #指定服务id,从Eureka中找到服务的ip和端口
#url: http://localhost:31200 #也可指定url
strip‐prefix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀
sensitiveHeaders: #默认zuul会屏蔽cookie,cookie不会传到下游服务,这里设置为空则取消默认的黑名
单,如果设置了具体的头信息则不会传到下游服务
# ignoredHeaders: Authorization


serviceId:推荐使用serviceIdzuul会从Eureka中找到服务id对应的ip和端口。
strip-prefifix: false #true:代理转发时去掉前缀,false:代理转发时不去掉前缀,例如,为true
/course/coursebase/get/..,代理转发到/coursebase/get/,如果为false则代理转发到/course/coursebase/get
sensitiveHeaders:敏感头设置,默认会过虑掉cookie,这里设置为空表示不过虑
ignoredHeaders:可以设置过虑的头信息,默认为空表示不过虑任何头
4.4.3 测试
请求http://localhost:50201/api/course/coursepic/list/4028e58161bd22e60161bd23672a0001查询课程图片信

http://localhost:50201/api是网关地址,通过路由转发到xc-service-manage-course服务。
由于课程管理已经添加了授课拦截,这里为了测试网关功能暂时将“/course/coursepic/list”url排除认证。
在课程管理服务的 ResourceServerConfifig类中添加"/course/coursepic/list/*",代码如下:
[AppleScript] 纯文本查看 复制代码
 @Override
public void configure(HttpSecurity http) throws Exception {
//所有请求必须认证通过
http.authorizeRequests()
//下边的路径放行
.antMatchers("/v2/api‐docs", "/swagger‐resources/configuration/ui",
"/swagger‐resources","/swagger‐resources/configuration/security",
"/swagger‐ui.html","/course/coursepic/list/*")
.permitAll()
.anyRequest().authenticated();
}


4.4.4 完整的路由配置
[AppleScript] 纯文本查看 复制代码
 zuul:
routes:
xc‐service‐learning: #路由名称,名称任意,保持所有路由名称唯一
path: /learning/**
serviceId: xc‐service‐learning #指定服务id,从Eureka中找到服务的ip和端口
strip‐prefix: false
sensitiveHeaders:
manage‐course:
path: /course/**
serviceId: xc‐service‐manage‐course
strip‐prefix: false
sensitiveHeaders:
manage‐cms:
path: /cms/**
serviceId: xc‐service‐manage‐cms
strip‐prefix: false
sensitiveHeaders:
manage‐sys:
path: /sys/**
serviceId: xc‐service‐manage‐cms
strip‐prefix: false
sensitiveHeaders:
service‐ucenter:
path: /ucenter/**
serviceId: xc‐service‐ucenter
sensitiveHeaders:
strip‐prefix: false
xc‐service‐manage‐order:
path: /order/**
serviceId: xc‐service‐manage‐order
sensitiveHeaders:
strip‐prefix: false








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2