春天Webflux:删除WWW身份验证头

问题描述 投票:2回答:1

我使用Spring 5 Webflux使用基本身份验证。

问题: 当我输入HTTP状态401错误的用户名或密码春天反应变量和包括www-authenticate: Basic realm="Realm" HTTP头这会导致浏览器弹出的基本身份验证框。

如何删除春5 Webflux是HTTP头? 我必须做一个定制的web过滤器?

basic-authentication spring-webflux
1个回答
0
投票

下面的代码是在科特林从我的项目复制。但这个想法可以简单地转移到Java。

因此,解决办法是围绕一个定制的网页过滤并列。

@Component
class HttpHeaderWebFilter: WebFilter {

    override fun filter(exchange: ServerWebExchange, next: WebFilterChain): Mono<Void> {

        return next.filter(exchange).then(Mono.defer {

            val headers = exchange.response.headers

            if (headers.containsKey("WWW-Authenticate")) {
                headers.remove("WWW-Authenticate")
            }

            Mono.empty<Void>()
        })
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.