maven仓库密码加密方案原理
创始人
2024-11-14 06:39:00

前言

有一个要求就是说不能使用明文密码,需要对 settings.xml 文件中的password密码进行加密

原始配置是没有对密码进行加密的

    gleam-repo    admin    admin123   

加密

这是接下来需要用到的两个命令

mvn --encrypt-master-password "加盐值" mvn --encrypt-password "需要加密的密码" 

获取加密盐值

输入 mvn --encrypt-master-password 回车然后输入给密码加盐的盐值
在这里插入图片描述

将加密盐值放到指定文件

然后将上面获取到的加密盐值放到 当前登录用户名.m2\settings-security.xml 的这个文件的 master 标签内,没有这个文件就新建,以下是这个文件的完整内容

           {2yB41Sc3/uUHseN39zLQB+14crvBhxsQRaXWgOTjdy8=}   

在这里插入图片描述

给密码进行加密

输入 mvn --encrypt-password 回车然后输入要加密的仓库密码,比如我的就输入 admin123,然后回车得到的密码就是加密后的密码
在这里插入图片描述

替换明文密码

替换 settings.xml 中的password即可

 	gleam-repo 	admin 	{TVKDNf7AL24H6+DZZwlMsc7DCGp+98I0Fa/ZSYTQ4v8=}  

maven配置文件

       C:\environment\apache-maven-3.6.3\maven-repo                                      gleam-repo       admin       {TVKDNf7AL24H6+DZZwlMsc7DCGp+98I0Fa/ZSYTQ4v8=}                             gleam-repo              dev       公司私库       http://192.10.10.70:8081/repository/maven-public/                       aliyunmaven              aliyun       阿里云公共仓库              http://maven.aliyun.com/nexus/content/groups/public/                                     aliyun                            aliyun                      http://maven.aliyun.com/nexus/content/groups/public/                        true                                   true                                                	 		dev 		 		                       gleam-repo           http://192.10.10.70:8081/repository/maven-public/                        true                                   true            		  		 			 		               aliyun     dev     

探索maven运行原理

看起来这里有一些混淆。Maven 使用的配置文件是 settings.xml,而不是 settingsSecurity.xml。.settingsSecurity 文件(注意它没有 .xml 扩展名)是用来存储密钥环的,而这些密钥环用于加密和解密 settings.xml 中的敏感信息(如用户名和密码)。

让我们澄清一下这些文件是如何工作的:

  1. settings.xml:
    这是 Maven 的主要配置文件,其中包含了各种设置,比如仓库的位置、镜像服务器等。
    敏感信息(如用户名和密码)可以被加密后存放在 settings.xml 文件中。
  2. settingsSecurity:
    这是一个二进制文件,用于存储加密和解密 settings.xml 中敏感数据所需的密钥。
    该文件通常位于用户的主目录下的 .m2 目录中。
    当 Maven 需要读取 settings.xml 中的敏感信息时,它会执行以下步骤:

查找 .settingsSecurity 文件:
Maven 会查找 .settingsSecurity 文件,通常是位于用户的主目录下的 .m2 目录中。
如果找不到 .settingsSecurity 文件,Maven 将无法解密 settings.xml 中的密码。
使用密钥解密密码:
Maven 会使用 .settingsSecurity 文件中的密钥来解密 settings.xml 中加密的密码。
如果密码被加密了,且没有 .settingsSecurity 文件,那么 Maven 无法正确地解密密码,这可能导致认证失败。
然后 Maven 会创建 .settingsSecurity 文件,并提示你如何使用它来加密 settings.xml 中的密码。
一旦你有了 .settingsSecurity 文件并且设置了加密的密码,Maven 就能够在需要时找到该文件并使用它来解密密码。
如果你没有创建 .settingsSecurity 文件或没有加密密码,那么 Maven 会直接使用 settings.xml 文件中的明文密码(如果有配置的话)。如果你希望使用加密功能,确保先创建并配置好 .settingsSecurity 文件。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...