深入了解实践应用SpringCloudZuul过滤器

本文深入探讨Spring Cloud Zuul的过滤器应用,包括PreFilter、PostFilter与ErrorFilter的具体实现,通过代码示例展示了如何在项目中进行用户鉴权、错误处理及异常拦截。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前我写过一篇文章Spring Cloud Zuul(路由转发与过滤器)里边大概讲解了zuul的路由转发和过滤器,这篇文章我们实践一下zuul的过滤器在项目中的使用。

我们一般在项目中用网关要做很多的事情,一般有用户鉴权,路由转发,统一的错误返回格式等等

细化来分的话 我们可分三类过滤器。PreFilter、PostFilter、ErrorFilter。(当然可以在细化一个RoleFilter,一般情况下,在配置文件中配置就够了)

PreFilter 可以理解为前置拦截,在这里边你可以做一些请求前要做的事情,比如用户鉴权,当然如果你们项目是前后端分离的情况下,你还要放掉他们的OPTIONS请求。

具体的PreFilter代码如下:



/**
 * @author MrWang
 * @version v1.0
 * @date 2018/12/05
 * @Description pre前置过滤器
 */
@Component
public class PreFilter extends ZuulFilter {
    @Value("${default.login.prefix}")
    private String defaultLoginPrefix;

    @Value("${default.login.time}")
    private int loginTime;

    @Autowired
    private JedisCluster redisUtils;


    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 0;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    /**
     * 解决跨域/token校验
     * 拦截器具体的代码
     * @return
     */
    @Override
    public Object run() {
        RequestContext requestContext = RequestContext.getCurrentContext();
        HttpServletRequest request = requestContext.getRequest();
        HttpServletResponse response = requestContext.getResponse();
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Head
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值