使用API密钥(aka身份验证令牌)部署到Maven Central
如何在不使用未加密本地密碼的情況下與Maven Central / Nexus通信(尤其是使用Gradle,但不僅限于此)。
基本原理
不幸的是,Gradle(和許多其他構(gòu)建工具)沒有提供任何機制來本地加密密碼(或至少編碼)。 沒有這種簡單的活動,例如向同事顯示您的全局Gradle配置( ~/.gradle/gradle.properties ),就很難受,更不用說以純文本形式在磁盤上存儲密碼帶來的更嚴(yán)重的風(fēng)險(請參見以及Sony Pictures Entertainment hack )。 它是Gradle,因此在所有Groovy魔術(shù)的支持下,可以在Linux上實現(xiàn)與系統(tǒng)密鑰環(huán)的集成以獲取密碼,但是我不知道有任何現(xiàn)有的插件/機制可以這樣做,我寧愿寧愿不寫它。
另一個問題是,如今,在無處不在的自動化和云環(huán)境中,通常使用允許執(zhí)行給定操作的API密鑰。 但是,它的丟失不會為攻擊者提供劫持該帳戶的可能性(例如,令牌既不能用于登錄管理面板,也不能用于更改電子郵件或密碼,而這需要額外的身份驗證)。
如果您需要在CI服務(wù)器上保留有效的憑據(jù)以進行自動甚至連續(xù)發(fā)布,這一點非常重要。 多虧了我的gradle-nexus-staging-plugin ,無需在Nexus GUI中執(zhí)行任何手動步驟即可將工件升級到Maven Central,所以這是我要在Codearte中處理我的私人項目和FOSS項目的下一個問題。
Nexus API密鑰生成
互聯(lián)網(wǎng)上搜索“ Maven中央api密鑰”并沒有幫助,因此我開始研究Nexus REST API文檔,發(fā)現(xiàn)實際上有一種(未知的)方式可以生成和使用API??密鑰(也稱為身份驗證令牌)。
在Nexus中生成API密鑰
摘要
使用API??密鑰可以將工件部署到Maven Central / Nexus很好,并且設(shè)置起來非常容易。 有人可能會說許可策略是粗粒度的(除了密碼/電子郵件更改外,什么也不做,其他所有操作),但在我看來,這對于工件存儲庫系統(tǒng)類來說似乎足夠了。 另外,這種方法也應(yīng)與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
總結(jié)
以上是生活随笔為你收集整理的使用API密钥(aka身份验证令牌)部署到Maven Central的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 测试 事务_Spring陷
- 下一篇: 大疆无人机备案流程(无人机备案流程)