如何在micronaut中使用拦截器添加头文件

r6vfmomb  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(324)

**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
我用的是micronaut和kotlin。所以我尝试使用拦截器向其他服务添加请求头。你能给我举个例子吗?

jogvjijk

jogvjijk1#

所以我尝试使用拦截器向其他服务添加请求头。你能给我举个例子吗?
下面是一个来自https://docs.micronaut.io/latest/guide/index.html#clientfilter:

@Filter("/repos/**") 
class BintrayFilter implements HttpClientFilter {

    final String username;
    final String token;

    BintrayFilter(
            @Value("${bintray.username}") String username, 
            @Value("${bintray.token}") String token ) { 
        this.username = username;
        this.token = token;
    }

    @Override
    public Publisher<? extends HttpResponse<?>> doFilter(MutableHttpRequest<?> request, ClientFilterChain chain) {
        return chain.proceed(
                request.basicAuth(username, token) 
        );
    }
}

doFilter 方法,您可以对请求执行任何操作,包括向其添加头。
编辑
这个问题表明Kotlin正在被利用。以下是kotlin对应的版本,其网址与上面的相同:

@Filter("/repos/**") 
internal class BintrayFilter(
        @param:Value("\${bintray.username}") val username: String, 
        @param:Value("\${bintray.token}") val token: String) : HttpClientFilter {

    override fun doFilter(request: MutableHttpRequest<*>, chain: ClientFilterChain): Publisher<out HttpResponse<*>> {
        return chain.proceed(
                request.basicAuth(username, token) 
        )
    }
}

相关问题