首页 springcloudzuul网关对微服务路由及权限的控制

springcloudzuul网关对微服务路由及权限的控制

举报
开通vip

springcloudzuul网关对微服务路由及权限的控制  springcloudzuul网关对微服务路由及权限的控制  前提:1.eureka-server注册服务中心。2.准备两个服务提供者,分别在端口8090,80913.启动Eureka服务器和两个服务提供者,访问http://localhost:8761/,如下图4.zuul网关服务搭建pom文件依赖如下:org.springframework.cloudspring-cloud-starter-zuulorg.springframework.cloudspring-cloud-starter-eureka配置...

springcloudzuul网关对微服务路由及权限的控制
  springcloudzuul网关对微服务路由及权限的控制  前提:1.eureka-server注册服务中心。2.准备两个服务提供者,分别在端口8090,80913.启动Eureka服务器和两个服务提供者,访问http://localhost:8761/,如下图4.zuul网关服务搭建pom文件依赖如下:org.springframework.cloudspring-cloud-starter-zuulorg.springframework.cloudspring-cloud-starter-eureka配置文件application.ymlspring:application:name:gatewayserver:port:8888eureka:client:serviceUrl:defaultZone:http://localhost:8761/eureka/#注册中心地址instance:prefer-ip-address:trueinstance-id:${spring.cloud.client.ipAddress}:${spring.application.name}:${server.port}#访问路径直接指向serviceId实例对应服务的接口#如:http://localhost:8761/server-kl/user(这里的server-kl指的是path)通过网关访问的是http://server-kl/user(此处server-kl指的是serviceId)zuul:routes:api-kls:path:/server-kl/**serviceId:server-kl#指向服务server-kl的applicationnamecustomSensitiveHeaders:trueapi-klc:path:/client-kl/**serviceId:client-kl#指向服务client-kl的applicationnamecustomSensitiveHeaders:trueadd-proxy-headers:true#X-Forwarder-Host请求头默认添加到转发请求中#目的:防止服务重启后,第一次访问超时hystrix:command:default:execution:timeout:enabled:falsestrategy:SEMAPHORE#Request请求头设置token编写一个zuul过滤器,用来控制权限等。每次发送请求的时候都需要判断是否有token。packagecom.kl.getaway.filter;importcom.netflix.zuul.ZuulFilter;importcom.netflix.zuul.context.RequestContext;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.context.annotation.Configuration;importjavax.servlet.http.HttpServletRequest;@Configuration//该注解是让服务器启动时将奔雷作为配置类注入到spring容器。如若不加此注解,需在启动类配置该beanpublicclassAccessFilterextendsZuulFilter{privatestaticLoggerlog=LoggerFactory.getLogger(AccessFilter.class);//可以在请求被路由之前调用@OverridepublicStringfilterType(){return"pre";}//通过int值来定义过滤器的执行顺序,越小的值越优先处理。@OverridepublicintfilterOrder(){return0;}//返回一个boolean类型来判断该过滤器是否要执行,所以通过此函数可实现过滤器的开关。true:总是生效,false:不生效@OverridepublicbooleanshouldFilter(){returntrue;}//过滤器的具体逻辑根据业务自行编写。@OverridepublicObjectrun(){RequestContextctx=RequestContext.getCurrentContext();HttpServletRequestrequest=ctx.getRequest();StringaccessToken=String.valueOf(request.getParameter("Token"));if(!accessToken.equals("zz")){ctx.setSendZuulResponse(false);ctx.setResponseStatusCode(401);returnnull;}returnnull;}启动类如下:packagecom.kl.getaway;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cloud.netflix.eureka.EnableEurekaClient;importorg.springframework.cloud.netflix.zuul.EnableZuulProxy;@EnableZuulProxy@SpringBootApplicationpublicclassZuulApplication{publicstaticvoidmain(String[]args){SpringApplication.run(ZuulApplication.class,args);}}开启服务后如下图:演示:1发送请求到service-kl(不带token):http://localhost:8761/service-kl/getNum?number=0由于没有权限,页面跳转401页面。2发送请求到service-1(带token):http://localhost:8761/service-kl/getNum?number=1&Token=zz返回方法运行结果3发送请求给service-2(带token):http://localhost:8761/client-kl/getNum?number=1&Token=zz效果同上getNum是service里定义的rest接口。 -全文完-
本文档为【springcloudzuul网关对微服务路由及权限的控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
资教之佳
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:7
分类:互联网
上传时间:2023-06-23
浏览量:6