OkHttp是否在重定向上发送授权和其他可能敏感的标头?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OkHttp是否在重定向上发送授权和其他可能敏感的标头?相关的知识,希望对你有一定的参考价值。

我通过Apache NiFi传递使用OkHttp。我正在尝试确定如何在重定向上处理授权和其他敏感标头。 NiFi的InvokeHTTP处理器与OkHttp在重定向方面唯一的交互是here,它在那里读取处理器属性并在OkHttpClientBuilder对象上设置选项:

// Set whether to follow redirects
okHttpClientBuilder.followRedirects(context.getProperty(PROP_FOLLOW_REDIRECTS).asBoolean());

快速搜索OkHttp的来源,我似乎无法确定重定向的处理位置,以便验证Authorization是否会被后续请求剥离,正如我所料。 cURL只是recently adopted出于安全原因这种行为。

答案

它发生在RetryAndFollowUpInterceptor

// When redirecting across hosts, drop all authentication headers. This
// is potentially annoying to the application layer since they have no
// way to retain them.
if (!sameConnection(userResponse, url)) {
  requestBuilder.removeHeader("Authorization");
}

以上是关于OkHttp是否在重定向上发送授权和其他可能敏感的标头?的主要内容,如果未能解决你的问题,请参考以下文章

Google OAuth 2 和 state 参数值需要在重定向 url 中注册

使用 JavaScript/jQuery 在重定向上发送 POST 数据? [复制]

Next.js:在实现私有路由时,如何在重定向之前防止未经授权的路由/页面的闪烁?

PHP 而不是 HTML 中的 <form> 从脚本发送表单并停留在重定向页面上?

将配置文件放置在重定向文件夹中时,Configuration.Save 方法会引发未经授权的访问错误

在 android 中使用 okhttp 在 webview 中的每个请求中发送授权标头