小编tca*_*arp的帖子

向来自 Netflix Zuul 预过滤器的请求正文添加一个新字段

我正在尝试在 Zuul 预过滤器中向请求正文添加一个新字段。

我正在使用这里的 Neflix 的 Zuul 示例项目之一,我的过滤器的实现与UppercaseRequestEntityFilter此示例非常相似。

我能够应用诸如大写的转换,甚至完全修改请求,唯一不方便的是我无法修改长度超过正文请求原始长度的正文请求的内容。

这是我的过滤器的实现:

@Component
public class MyRequestEntityFilter extends ZuulFilter {
    public String filterType() {
        return "pre";
    }

    public int filterOrder() {
        return 10;
    }

    public boolean shouldFilter() {
        RequestContext context = getCurrentContext();
        return true;
    }

    public Object run() {
        try {
            RequestContext context = getCurrentContext();
            InputStream in = (InputStream) context.get("requestEntity");
            if (in == null) {
                in = context.getRequest().getInputStream();
            }

            String body = StreamUtils.copyToString(in, Charset.forName("UTF-8"));

            body = body.replaceFirst("qqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq");

            // …
Run Code Online (Sandbox Code Playgroud)

filter netflix netflix-zuul

3
推荐指数
1
解决办法
1724
查看次数

标签 统计

filter ×1

netflix ×1

netflix-zuul ×1