如何在Maven settings.xml中配置Bearer授权令牌访问JFrog Artifactory
用JFrog Identity Token替代用户名密码访问Artifactory的Maven配置方法
Maven本身没有原生支持Bearer Token的配置项,你之前用的<token>标签不是标准settings.xml元素,所以不会生效。要实现通过Authorization: Bearer <identityToken>请求头访问Artifactory,得借助wagon-http扩展来配置自定义请求头,具体步骤如下:
配置settings.xml的服务器信息:在
<servers>节点下添加你的Artifactory服务器配置,无需填写用户名和密码:<server> <id>artifactory-server</id> <!-- 此处无需配置username或password --> </server>添加wagon-http扩展配置:在settings.xml的
<profiles>节点下创建一个profile,通过属性注入Bearer Token请求头:<profile> <id>artifactory-bearer-token</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <wagon.http.headers>Authorization: Bearer ${identityToken}</wagon.http.headers> </properties> </profile>这里的
${identityToken}可以直接写死令牌字符串,也可以通过系统环境变量、Maven命令行参数(比如-DidentityToken=你的令牌)传入。匹配仓库与服务器ID:确保pom.xml或settings.xml的
<repositories>节点中,Artifactory仓库的<id>和上述<server>的<id>完全一致:<repository> <id>artifactory-server</id> <url>https://你的Artifactory地址/repository/maven-releases/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>false</enabled></snapshots> </repository>验证配置:执行Maven命令时加上
-X参数查看调试日志,检查请求头是否包含Authorization: Bearer <你的令牌>,确认配置生效。
另外,如果你用的是Maven 3.8.1及以上版本,也可以通过maven.wagon.http.header系列系统属性直接配置,但通过profile的方式更灵活,方便统一管理。
内容的提问来源于stack exchange,提问作者Jose Luis Soto Posada
相关产品推荐
相关产品推荐

