Maven 未添加“授权”标头

Dmy*_*tov 6 java maven

我正在尝试将工件部署到受基本身份验证保护的存储库。

我指定

<distributionManagement>
    <repository>
        <id>some.repo</id>
        <name>Some Repository</name>
        <url>https://foo.bar</url>
    </repository>
</distributionManagement>
Run Code Online (Sandbox Code Playgroud)

pom.xml

  <servers>
    <server>
      <id>some.repo</id>
      <username>user</username>
      <password>{encoded password}</password>
    </server>
  </servers>
Run Code Online (Sandbox Code Playgroud)

settings.xml

但是当我运行时mvn deploy它失败并出现错误:Not authorized , ReasonPhrase:. -> [Help 1]

如果我使用

 <server>
  <id>some.repo</id>
    <configuration>
        <httpHeaders>
            <property>
                <name>Authorization</name>
                <value>Basic (hash)</value>
            </property>
        </httpHeaders>
    </configuration>
</server>
Run Code Online (Sandbox Code Playgroud)

相反 - 它有效。

使用 Wireshark 检查后,我发现在第一个场景(使用登录名/密码)中,Maven 不会Authorization向 HTTP 请求添加标头。

这是正确的行为吗?我在配置中遗漏了什么吗?

Dmy*_*tov 1

好吧,在这种情况下,这不是 Maven 的问题,而是服务器端的问题:服务器没有发送Connection: keep-aliveheader。有了这个标头,授权流程就可以工作了。