SpringCloud过滤filter
2024-09-01 09:38:03
目录
配置文件 application.yml
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka
server:
port:
spring:
application:
name: zuul
##配置zuul网关
zuul:
routes:
api-a:
path: /member-zuul/**
service-id: memeber-service
api-b:
path: /order-zuul/**
service-id: order-service
MyZuulFilter类
package com.cloud.filter; import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.exception.ZuulException;
import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Component
public class MyZuulFilter extends ZuulFilter {
/**
* 过滤类型
* @return
*/
@Override
public String filterType() {
return "pre";
} /**
* 请求过滤顺序
* @return
*/
@Override
public int filterOrder() {
return 0;
} /**
*
* @return
*/
@Override
public boolean shouldFilter() {
return true;
} @Override
public Object run() throws ZuulException {
//获取token参数
RequestContext rc = RequestContext.getCurrentContext();
HttpServletRequest request = rc.getRequest(); String token = request.getParameter("token");
if(token!=null){
return null;
}
//表示不进行路由
rc.setSendZuulResponse(false);
rc.setResponseStatusCode(401); try {
rc.getResponse().setContentType("text/html;charset=utf-8");
rc.getResponse().getWriter().write("没有传递正确参数,请校验后重试~");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
启动类
package com.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; @EnableEurekaClient @SpringBootApplication @EnableZuulProxy public class StartZuul { public static void main(String[] args) { SpringApplication.run(StartZuul.class,args); } }
效果
1、
2、
最新文章
- [Storm] Storm与asm的恩恩怨怨
- DSY3163*Eden的新背包问题
- TSQL 聚合函数忽略NULL值
- java中的程序流程控制
- SharePoint 2013 使用 PowerShell 更新用户
- 【Win10】解决 模拟器调试手机 错误->; 引导阶段... 无法找到指定路径......\2052\msdbgui.dll
- 在DataTable中执行DataTable.Select(";条件";)返回DataTable;
- iOS验证码倒计时(GCD实现)
- Unit testing Cmockery 简单使用
- 【转】Android4.4 之Bluetooth整理
- WCF服务
- 「OC」类的深入研究、description方法和sel
- PHP 两张图片合成一张图片(加水印)
- java将word文件转为pdf
- 如何卸载EXCEL中的插件?
- 关于 web 页面 占满全屏
- zabbix系列(三)zabbix3.0.4微信告警配置详解
- Red Hat OpenShift
- AFNetWorking 上传功能使用及源码分析
- HDU 4651 数论 partition 求自然数的拆分数
热门文章
- error adding symbols:DSO missing from command line
- Google Colab——零成本玩转深度学习
- Python开发【源码剖析】 Dict对象
- vue SPA设计 history hash
- 用python读取word文件里的表格信息【华为云技术分享】
- Teamviewer显示“未就绪,请检查您的连接”解决办法
- Dijkstra堆优化+邻接表
- aria2 cmd set chmod, and others..
- Mock、Powermock使用汇总
- PHP java时间戳转php时间戳