我正在尝试将工件部署到受Basic Auth存储库保护的工件。

我指定

<distributionManagement>
    <repository>
        <id>some.repo</id>
        <name>Some Repository</name>
        <url>https://foo.bar</url>
    </repository>
</distributionManagement>


pom.xml



  <servers>
    <server>
      <id>some.repo</id>
      <username>user</username>
      <password>{encoded password}</password>
    </server>
  </servers>


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>


相反-它起作用。

在使用Wireshark进行检查之后,我发现在第一种情况(使用登录名/密码)中,Maven不会在HTTP请求中添加Authorization头。

这是正确的行为吗?我在配置中缺少什么吗?

最佳答案

好吧,在这种情况下,它不是Maven,而是服务器端的问题:服务器未发送Connection: keep-alive标头。使用此标头,授权流程起作用。

关于java - Maven不添加“授权” header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48631422/

10-11 22:57
查看更多