当前位置: 首页 > 知识库问答 >
问题:

如何在Micronaut注册自定义过滤器?

葛兴发
2023-03-14

有什么建议吗?

共有1个答案

葛驰
2023-03-14

我试图在micronaut中注册自定义过滤器,但我没有找到任何FilterRegistrationBean类,我们在Spring中注册我们自己的过滤器。

它们实际上不需要注册,至少不需要像使用Spring那样注册。如果筛选器标记为@filter并且位于类路径上,则将注册它。您链接的文档中的一个示例如下所示:

import io.micronaut.http.*;
import io.micronaut.http.annotation.Filter;
import io.micronaut.http.filter.*;
import org.reactivestreams.Publisher;

@Filter("/hello/**") 
public class TraceFilter implements HttpServerFilter { 
    private final TraceService traceService;

    public TraceFilter(TraceService traceService) { 
        this.traceService = traceService;
    }

    ​@Override
   ​public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
       ​return traceService.trace(request)
                          ​.switchMap(aBoolean -> chain.proceed(request))
                          ​.doOnNext(res ->
                               ​res.getHeaders().add("X-Trace-Enabled", "true")
                          ​);
   }
}

不需要额外的步骤来发挥作用。

 类似资料:
  • 问题内容: 我想在定义类时注册一个类的实例。理想情况下,以下代码可以解决问题。 不幸的是,此代码生成错误。 发生的事情是在我尝试实例化a的行上,但装饰器尚未返回,因此它不存在。 是否使用元类解决了这个问题? 问题答案: 是的,元类可以做到这一点。元类的方法返回该类,因此只需在返回之前注册该类。 前面的示例在Python 2.x中有效。在Python 3.x中,的定义略有不同(虽然未更改,但未显示-

  • 演示在网关追加一个header public class CustomFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 演示在网关追加heade

  • SOFARPC 提供了一套良好的可扩展性机制,为各个模块提供 SPI 的能力。 SOFARPC 对请求与响应的过滤链处理方式是通过多个过滤器 Filter 来进行具体的拦截处理,该部分可由用户自定义 Filter 扩展,自定义 Filter 的执行顺序在内置 Filter 之后。具体方式如下: Bolt Filter 新建自定义 Filter 。 public class CustomFilter

  • 我正在寻找一种有效地针对JUnit5集成测试的方法。测试使用gradle运行,所有集成测试类都由自定义类级别注释修饰。我可以根据它们的类名模式或通过使用标记对它们进行分类来筛选它们,但是有没有一种方法可以设置一个针对带有注释的测试的测试套件呢?

  • 问题内容: 我正在使用Spring Security 3.2和Spring 4.0.1 我正在将xml配置转换为Java配置。当我在“过滤器”中添加注释时@Autowired,出现异常 我已经尝试了注入,但是由于类似的异常也失败了。 这是我正在使用的XML配置 这是我正在尝试的Java Config 这是“自定义过滤器”类。给我麻烦的那一行是AuthenticationManager的设置器 问题