eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central

本文介绍了如何在不使用未加密密码的情况下,利用Nexus API密钥(身份验证令牌)与Maven Central通信,特别关注Gradle的使用。文章强调了API密钥在自动化和云环境中的安全性优势,并提供了生成和使用Nexus API密钥的步骤,以及其在不同构建工具中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eap aka

如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此)。

基本原理

不幸的是,Gradle(和许多其他构建工具)没有提供任何机制来本地加密密码(或至少编码)。 没有这种简单的活动,例如向同事显示您的全局Gradle配置( ~/.gradle/gradle.properties ),就很难受,更不用说以明文形式将密码存储在磁盘上带来更大的风险了(请参阅以及Sony Pictures Entertainment hack )。 它是Gradle,因此在所有Groovy魔术的支持下,可以在Linux上实现与系统密钥环的集成以获取密码,但是我不知道有任何现有的插件/机制可以这样做,我宁愿宁愿不写它。

另一个问题是,如今,在无处不在的自动化和云环境中,通常使用允许执行给定操作的API密钥。 但是,其丢失不会给攻击者提供劫持该帐户的可能性(例如,令牌既不能用于登录管理面板,也不能用于更改电子邮件或密码,而这需要额外的身份验证)。

如果需要在CI服务器上保留有效的凭据以进行自动甚至连续发布,这一点非常重要。 由于有了gradle-nexus-staging-plugin ,因此无需在Nexus GUI中执行任何手动步骤即可将工件升级到Maven Central,因此,这是我要在Codearte中处理我的私人项目和FOSS项目的下一个问题。

Nexus API密钥生成

互联网搜索“ Maven中央api密钥”并没有帮助,因此我开始研究Nexus REST API文档,发现实际上有一种(未知的)方式可以生成和使用API​​密钥(又名身份验证令牌)。

  1. 登录Nexus托管Sonatype OSS存储库托管 (或您自己的Nexus实例)。
  2. 单击右上角的登录名,然后选择“配置文件”。
  3. 从带有“摘要”文本的下拉列表中选择“用户令牌”。
  4. 点击“访问用户令牌”。

    在Nexus中生成API密钥

    在Nexus中生成API密钥

  5. 输入密码
  6. 复制并粘贴您的API用户名和API密钥(到〜/ .gradle / gradle.properties或CI服务器配置中)。
  7. 像往常一样以更安全的方式工作。

摘要

使用API​​密钥可以将工件部署到Maven Central / Nexus很好,并且设置起来非常容易。 有人可能会争辩说,许可策略是粗粒度的(除了密码/电子邮件更改外,什么也不做,或所有其他操作),但在我看来,这对于工件存储库系统类来说似乎足够了。 另外,这种方法也应与Sbt,Ivy,Leiningen以及其他尝试将工件上载到Maven Central的其他方法一起使用(包括通过使用settings-security.xml消除主密码加密的限制来包括Maven本身)。 希望该帖子将使其广为人知。

翻译自: https://www.javacodegeeks.com/2015/09/deploy-to-maven-central-using-api-key-aka-auth-token.html

eap aka

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值