我正在尝试将工件部署到受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
标头。
这是正确的行为吗?我在配置中遗漏了什么吗?
答案 0 :(得分:0)
嗯,在这种情况下,它不是Maven,而是服务器端问题:服务器没有发送Connection: keep-alive
标头。使用此标头,授权流程可以正常工作。
答案 1 :(得分:0)
maven仅在服务器以
响应的请求上发送用户名/密码状态码:401
标题:WWW-Authenticate: Basic
。