【工具篇】Maven加密Nexus用户密码

news2024/11/24 15:02:49

背景说明

按照DevOps三级要求,Maven工具发布Nexus帐号不能使用明文密码,需要对settings.xml文件中的password密码进行加密存储。下面就说一下具体的加密过程及配置方法。

环境说明

Maven:Apache Maven 3.6.3
Nexus:OSS 3.29.2-02(免费版)

解决方法

1. 获取加密盐值

输入mvn --encrypt-master-password回车然后输入给密码加盐的盐值

Microsoft Windows [版本 10.0.19044.2965]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>mvn --encrypt-master-password
Master password: (这里输入你指定的master明文密码)
{XMoA0lJCA4kH6fS7L94mriQnQH5UlNianaSEFMG4HFI=} (这是根据明文MasterPassword计算的密码)

在这里插入图片描述

2. 将加密盐值放到指定文件

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

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
maven安全配置文件(如果没有就手动创建), 内容如下
linux下路径:  ~/.m2/settings-security.xml
window下路径:  %USERPROFILE%\.m2\settings-security.xml
window下路径:  当前登录用户名\.m2\settings-security.xml

%USERPROFILE% 指当前登录windows的用户, 比如我当前登录的账号是admin
完整示例: C:\Users\admin\.m2
-->
<settingsSecurity>
    <!-- master的值为 mvn encrypt-master-password 生成的密文-->
    <master>{XMoA0lJCA4kH6fS7L94mriQnQH5UlNianaSEFMG4HFI=}</master>
</settingsSecurity>

在这里插入图片描述
注意:只能放在该目录下,且配置文件名必须为settings-security.xml

3. 给私服密码进行加密

输入mvn --encrypt-password命令回车,然后输入要加密的仓库密码,比如我的就输入esunny123,得到的密码就是加密后的密码:

Microsoft Windows [版本 10.0.19044.2965]
(c) Microsoft Corporation。保留所有权利。

C:\Users\Administrator>mvn --encrypt-password
Password:  (输入你nexus私服对应Repository的密码)
{bX/oRMMjQAcHIkQ7R5RYrvhQliT3KRQVykhXD4q2t58=} (这是根据明文Password计算的密码)

在这里插入图片描述
注意:必须先按照步骤2执行,否则会报错,报错信息如下:
在这里插入图片描述

4. 替换明文密码

修改本地${maven.home}\conf\settings.xml文件:

<server>
	<id>gleam-repo</id>
	<username>admin</username>
	<password>{7l9KDIMMpfsHbKcxpOd5Q6ynbyxby2Y0TXkcppp/SDI=}</password>
</server>

到此,就可以安全地链接Nexus对应的Repository进行发布或下载依赖库了。

该种方式的加密是完全基于本地Maven工具操作,安全性其实并不完美,但是针对于Nexus Repository OSS (免费版) 版本也暂时只能做到这个程度。

商业版Nexus做法

如果公司使用的是收费版Nexus Repository Pro版本,可以用更安全的方式,本地settings.xml直接写nexus提供的密文。
详见Nexus官方文档: http://books.sonatype.com/nexus-book/reference3/security.html#user-token

部分截图如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计用户模块的schema

schema 在计算机科学中&#xff0c;schema通常指的是 数据结构的定义和约束。 关系型数据库 在关系型数据库中&#xff0c;schema指的是数据库中所有表格的定义和表格之间的关系约束&#xff0c;包括每个表格的列名、数据类型、主键、外键等等。 如果要对一个关系型数据库进行…

在没有实验数据的情况下,如何高效快速发表论文

文献计量学是指用数学和统计学的方法&#xff0c;定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体&#xff0c;注重量化的综合性知识体系。特别是&#xff0c;信息可视化技术手段和方法的运用&#xff0c;可直观的展示主题的研究发展历程、研究现状、研究…

互联网一线大厂Java面试题大全带答案 1110道(持续更新)

前言 春招&#xff0c;秋招&#xff0c;社招&#xff0c;我们 Java 程序员的面试之路&#xff0c;是挺难的&#xff0c;过了 HR&#xff0c;还得被技术面&#xff0c;小刀在去各个厂面试的时候&#xff0c;经常是通宵睡不着觉&#xff0c;头发都脱了一大把&#xff0c;还好最终…

平台稳定性里程碑 | Android 14 Beta 3 发布

作者 / Dave Burke, VP of Engineering 随着今天 Android 14 Beta 3 的发布&#xff0c;我们随之进入到 Android 开发周期的下一个阶段。Beta 3 依旧围绕着我们的核心主题打造&#xff0c;即隐私、安全、性能、开发者生产力和用户定制&#xff0c;同时继续完善平板电脑、可折叠…

基础知识学习---排序算法

1、本栏用来记录社招找工作过程中的内容&#xff0c;包括基础知识学习以及面试问题的记录等&#xff0c;以便于后续个人回顾学习&#xff1b; 暂时只有2023年3月份&#xff0c;第一次社招找工作的过程&#xff1b; 2、个人经历&#xff1a; 研究生期间课题是SLAM在无人机上的应…

Rsync工具的详细介绍以及定时备份案例

RSYNC 什么是RSYNC rsync是类unix下的一款数据镜像备份工具——remote sync。 Rsync 的基本特点如下&#xff1a; 可以镜像保存整个目录树和文件系统&#xff1b;可以很容易做到保持原来文件的权限、时间、软硬链接等&#xff1b;无须特殊权限即可安装&#xff1b;优化的流…

Java中的Lambda表达式详解

文章目录 什么是LambdaLambda表达式的语法Lambda表达式的应用场景GUI应用Lambda表达式的优缺点总结 什么是Lambda java中的Lambda表达式是一种函数式编程的风格&#xff0c;它允许我们将代码作为数据传递&#xff0c;并在需要时执行。Lambda表达式能够极大地简化代码&#xff0…

WPF开发txt阅读器9:语音播放及其进度监控

文章目录 播放进度光标跟踪进度条 txt阅读器系列&#xff1a; 需求分析和文件读写目录提取类&#x1f48e;列表控件与目录字体控件绑定&#x1f48e;前景/背景颜色书籍管理系统&#x1f48e;用树形图管理书籍语音播放 播放进度 SpeechSynthesizer对象可以注册Speech_SpeakPr…

安洵杯SYCCTF2023 writeup

一、MISC 1.sudoku_easy 简单的数独交互&#xff0c;几个小注意点&#xff0c;每次发送level之后sleep5秒才会返回题目 将形如 --------------------- 800103720 023840650 410006008 300001062 000052407 072060090 160000375 205019846 000030000 --------------------- 转换…

django中url和视图函数path re_path views.py

目录 url的定义url的格式django中的urldjango中的创建自己的urldjango访问测试django中的path动态django中的path动态案例django中的path动态类型django中的path动态案例-计算器django的正则路由re_path() url的定义 url 统一资源定位符 url 用来表示互联网上某个资源的地址 …

邀请媒体参加活动的邀请函应该怎么写

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 经常有小伙伴问媒体邀请函怎么写&#xff0c;今天胡老师就把媒体邀请函的一个大概格式分享出来&#xff0c;不论是 做成什么形式的邀请函&#xff0c;这几点都不可少。 主题&#xff1a;…

数据库的基本概念

数据库的基本概念 数据&#xff08;Data&#xff09; 描述事物的符号记录 包括数字、文字、图形、声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起 用来存储具体数据 数据库 表的集合&#xff0c;是存储和管理数据的仓库 数据库管理…

linuxOPS基础_进程查看与管理

进程与程序的关系 进程是正在执行的一个程序或命令&#xff0c;每个进程都是一个运行的实体&#xff0c;并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。 ​ 简单来说&#xff0c;程序是人使用计算机语言编写的&#xff0c;可…

三菱FX5U系列PLC之间进行简易PLC间链接功能的具体方法

三菱FX5U系列PLC之间进行简易PLC间链接功能的具体方法 功能介绍: 在最多8台FX5U或者FX3U PLC之间通过RS-485通信方式连接,进行软元件相互链接的功能。 接线注意事项: 根据链接模式和所使用的从站数量的不同,链接软元件的占用点数也有所变化。根据链接软元件的起始编号,对占…

Java数据结构之第十五章、Trie(前缀树/单词查找树)

一、前缀树 1.1前缀树相关知识 1.前缀树的概念&#xff1a;前缀树又叫字典树或单词查找树&#xff08;高效的存储和查找字符串集合的数据结构&#xff09;。 2.主要应用场景&#xff1a;给定一个字符串集合构建一颗前缀树&#xff0c;然后给定一个字符串&#xff0c;判断前缀…

Flink 流批一体在 Shopee 的大规模实践

摘要&#xff1a;本文整理自 Shopee 研发专家李明昆&#xff0c;在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 流批一体在 Shopee 的应用场景 2. 批处理能力的生产优化 3. 与离线生态的完全集成 4. 平台在流批一体上的建设和演进 …

华为OD机试 JavaScript 实现【扑克牌大小】【牛客练习题 HJ88】,附详细解题思路

一、题目描述 扑克牌游戏大家应该都比较熟悉了&#xff0c;一副牌由54张组成&#xff0c;含3~A、2各4张&#xff0c;小王1张&#xff0c;大王1张。牌面从小到大用如下字符和字符串表示&#xff08;其中&#xff0c;小写joker表示小王&#xff0c;大写JOKER表示大王&#xff09…

JavaScript笔记——快速了解 ES6 新增数组方法,开箱即用(含案例)

文章目录 &#x1f4cb;前言&#x1f3af;Array.from()&#x1f3af;Array.of()&#x1f3af;Array.find()&#x1f3af;Array.findIndex()&#x1f3af;Array.includes()&#x1f3af;Array.flat()&#x1f3af;Array.flatMap()&#x1f3af;Array.every()&#x1f3af;Array.…

MQTT相关知识点

目录 一、简述 二、设计规范 三、MQTT协议原理 3.1 MQTT协议实现方式 3.2 网络传输与应用消息 3.3 MQTT客户端 3.4 MQTT服务器 3.5 MQTT协议中的订阅、主题、会话 3.6 MQTT协议中的方法 四.MQTT脑图 五.体验MQTT 搭建MQTT服务器&#xff08;Broker&#xff09; MQT…

MFC 工具栏SOP 线程创建非模式化窗口 实现拓展工具栏

自己在学习工具栏的时候&#xff0c;做的笔记 1 实现基本工具栏 1.1 在Dlg.h文件中声明变量和定义资源ID #define ID_BUTTONS 501CToolBar m_toolbar; //工具栏 CImageList m_imageList; //工具栏图片 CImageList m_hotImageList; //工具栏热点图片 CReBar m_Rebar; //…