SpringCloud过滤filter

目录

配置文件 application.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8001/eureka
server:
  port: 9001
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、

原文地址:https://www.cnblogs.com/dabrk/p/12071843.html

时间: 2024-10-09 14:03:16

SpringCloud过滤filter的相关文章

elasticsearh搜索过滤filter

首先要讲下,为什么需要使用filter过滤 过滤并不会返回一个匹配度score,以至于它比查询要快很多 过滤查询后的结果能被缓存到内存中,并被多次重复使用. 1.如果我们要查询出account中blance从20000到30000之间的数据  curl -XPOST localhost:9200/bank/_search?pretty -d '{     "query":{         "filtered":{             "query&q

kendo grid的过滤filter

kendo是一套强大方便的前端解决方案,而且新版还可以与angularjs集成,项目中就使用了一些kendo的控件,比如grid表格. grid提供了过滤功能,但中文网站缺少这方面的资料,在这里整理一下kendo grid怎么使用过滤. 下面代码包含了grid的过滤所有涉及的所有设置,以这个完整的例子,加上注释讲解其使用方法: 1 <div id="grid"></div> 2 <script> 3 $("#grid").kend

dplyr 数据操作 数据过滤 (filter)

在R的使用过程中我们几乎都绕不开Hadley Wickham 开发的几个包,前面说过的ggplot2.reshape2以及即将要讲的dplyr 因为这几个包可以非常轻易的使我们从复杂的数据操作中逃离,操作过程简洁,最重要的是数据结果也异常简洁. 首先我们来了解下第一个函数filter() filter(.data, ...) 参数很简单,只有data,即要操作的数据对象,其他都是数据操作条件. 下面看一些简单的例子 library(dplyr) x<-data.frame(id=1:6, nam

SpringCloud使用Filter过滤器实现@RequestParam参数加密

一.添加拦截器 @WebFilter中的filterName首字母一定要小写!!! package com.xiaohang.socialcard.pre.filter; import com.xiaohang.socialcard.pre.utils.SM4Util; import lombok.extern.slf4j.Slf4j; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.

filter 过滤emoji

拦截器 public class EmojiFilter implements Filter { private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException { System.out.println("Filter initialized"); this.filterConfig = filterConfig; } public void d

SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理

前言 在上篇中介绍了SpringCloud Zuul路由网关的基本使用版本,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的路由网关的过滤器Filter以及异常处理的教程. SpringCloud Zuul Filter 介绍 过滤器概述 Zuul的中心是一系列过滤器,能够在HTTP请求和响应的路由过程中执行一系列操作. 以下是Zuul过滤器的主要特征: 类型:通常在应用过滤器时在路由流程中定义阶段(尽管它可以是任何自定义字

vim --Filter commands

命令也被称作是motion :help ! Filter commands 信息过滤 (filter) !==>tell vim to performing a filter operation !5G -> 从光标下向下5行执行过滤程序 (tell vim to start filter under cursor and go down 5 lines) :.,.+4! :10,15!sort -> 只在文件的第10行到第15行之间执行 (sort between line 10 to

servlet、filter、listener继承的基类和获得作用域的方式

一.servlet: 1.servlet属于j2ee的组件,构建servlet的web project不需要导入项目框架jar包 2.servlet的体系结构:  在j2ee API中,提供给servlet的支持接口和基类都位于javax.servlet.*和javax.servlet.http.*(提供所有与http请求有关的API)两个包中  servlet包中常使用的接口   Interface ServletConfig   Interface ServletContext   Inte

java web filter 基础

本文主要对Filter的使用进行讲解. 1.Filter是什么? Filter 技术是servlet 2.3 新增加的功能.Filter翻译过来的意思就是过滤器,能对客户端的消息进行预处理,然后将请求转发给其它的web组件,可以对ServletHttpRequest和ServletHttpResponse进行修改和检查.例如:在Filter中可以检查用户是否登录,对未登录的用户跳转到登陆界面. 2.过滤器快速入门 要定义一个过滤器,则需要实现javax.servlet.Filter接口,一个过滤