Maven 密码加密
一、简介
Maven支持服务器密码加密。该解决方案解决的主要用例是:
- 多个用户共享同一台生成计算机(服务器、CI 框)
- 有些用户有权将 Maven 工件部署到存储库,有些则没有。
- 这适用于任何需要授权的服务器操作,而不仅仅是部署
settings.xml
在用户之间共享
实施的解决方案添加了以下功能:
- 授权用户在其目录中有一个附加文件
settings-security.xml
${user.home}/.m2
- 此文件包含加密的主密码,用于加密其他密码
- 或者它可以包含重定位 - 引用另一个文件,可能在可移动存储上
- 此密码目前首先通过 CLI 创建
- 中的服务器条目已加密密码和/或密钥库密码
settings.xml
- 目前 - 这是在创建主密码并将其存储在适当位置后通过 CLI 完成的
二、 如何创建主密码
使用以下命令行:
mvn --encrypt-master-password <password>
注意:从 Maven 3.2.1 开始,不应再使用密码参数。Maven 将提示输入密码。早期版本的 Maven 不会提示输入密码,因此必须在命令行上以明文形式键入密码。
此命令将生成密码的加密版本,类似于:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
将该密码存储在${user.home}/.m2/settings-security.xml中;它应该看起来像:
<settingsSecurity><master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
完成此操作后,可以开始加密现有服务器密码。
三、如何加密服务器密码
您必须使用以下命令行:
mvn --encrypt-password <password>
注意:就像--encrypt master password一样,自Maven 3.2.1以来,不应再使用密码参数(有关详细信息,请参阅下面的提示。)。
该命令生成它的加密版本,类似于:
{COQLCE6DU6GtcS5P=}
将其复制并粘贴到settings.xml文件的servers部分。这将类似于:
<settings>
...<servers>
...<server><id>my.server</id><username>foo</username><password>{COQLCE6DU6GtcS5P=}</password></server>
...</servers>
...
</settings>
请注意,密码可以包含大括号以外的任何信息,以便以下内容仍然有效:
<settings>
...<servers>
...<server><id>my.server</id><username>foo</username><password>Oleg reset this password on 2009-03-11, expires on 2009-04-11 {COQLCE6DU6GtcS5P=}</password></server>
...</servers>
...
</settings>
然后你可以使用,比如说,部署插件,写入这个服务器:
mvn deploy:deploy-file -Durl=https://maven.corp.com/repo \-DrepositoryId=my.server \-Dfile=your-artifact-1.0.jar \
四、如何在可移动驱动器上保留主密码
完全如上所述创建主密码,并将其存储在可移动驱动器上,例如在OSX上,我的USB驱动器装载为/Volumes/mySecureUsb,因此我存储:
<settingsSecurity><master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
在文件/Volumes/mySecureUsb/secure/settings-security.xml中
然后创建${user.home}/.m2/settings-security.xml,内容如下:
<settingsSecurity><relocation>/Volumes/mySecureUsb/secure/settings-security.xml</relocation>
</settingsSecurity>
这确保加密仅在操作系统装载USB驱动器时工作。这解决了一个用例,其中只有某些人被授权部署并获得这些设备。
五、在密码中转义花括号文本(自:Maven 2.2.0)
有时,您可能会发现密码(或其加密形式)包含“{”或“}”作为文本值。如果将这样的密码添加到settings.xml文件中,您会发现Maven对它做了一些奇怪的事情。具体来说,Maven将“{”文本之前的所有字符以及“}”文本之后的所有字符作为注释。显然,这不是你想要的行为。您真正需要的是一种逃避密码中花括号文本的方法。
您可以使用广泛使用的“\”转义符来实现这一点。如果您的密码如下所示:
jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+{EF1iFQyJQ=
然后,要添加到settings.xml的值如下所示:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+\{EF1iFQyJQ=}
相关文章:
Maven 密码加密
一、简介 Maven支持服务器密码加密。该解决方案解决的主要用例是: 多个用户共享同一台生成计算机(服务器、CI 框)有些用户有权将 Maven 工件部署到存储库,有些则没有。 这适用于任何需要授权的服务器操作,而不仅仅是…...
Socks5代理和代理IP:网络工程师的多面利器
在数字时代,网络工程师的角色日益重要,他们需要应对跨界电商、爬虫、出海业务、网络安全和游戏等领域的技术挑战。而Socks5代理和代理IP技术作为他们的利器,发挥着至关重要的作用。本文将探讨这两种技术在不同领域的应用,展现其在…...

模拟信号隔离器在水处理控制系统中的应用方案
安科瑞 崔丽洁 摘要:水处理控制系统中,其控制、监测模块的非电量模拟量传感器采用信号隔离器的接线方式合理地解决了相关模拟量传感器供电电源安全和相对独立的问题,保证了监测模块的电源、模拟量采集模块和输出模块的相对隔离,降…...

XML是不是主要用做配置文件?
2023年10月11日,周三下午 这几天发现tomcat的配置文件主要是用XML文件来写的, 于是就有了这个问题。 是的,XML非常适合用来做配置文件。 XML作为配置文件的主要优点: 可读性强。XML使用标签结构组织数据,内容清晰易懂。跨语言和跨平台。XML作为纯文本…...

在 Elasticsearch 中实现自动完成功能 3:completion suggester
在这篇博文中,我们将讨论 complete suggester - 一种针对自动完成功能进行优化的 suggester,并且被认为比我们迄今为止讨论的方法更快。 Completion suggester 使用称为有限状态转换器的数据结构,该结构类似于 Trie 数据结构,并且…...
走进Flink
什么是Flink Flink是一个分布式的、高性能的、可伸缩的、容错的流处理引擎,它支持批处理和流处理,并提供了丰富的 API 和库,是实时数据处理的理想选择 由Java 和 Scala 实现的,所以所有组件都会运行在Java 虚拟机【单个JVM也可以】…...

Kubernetes核心组件Services
1. Kubernetes Service概念 Service是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的POD(容器)应用提供统一的访问入口,并且将请求进行负载分发到后端的各个容器应用上。 在Kubernetes中…...

Win10 系统中用户环境变量和系统环境变量是什么作用和区别?
环境: Win10专业版 问题描述: Win10 系统中用户环境变量和系统环境变量是什么作用和区别? 解答: 在Windows 10系统中,用户环境变量和系统环境变量是两个不同的环境变量,它们具有不同的作用和区别 1.用…...
rust模式
一、模式是什么 模式是Rust中特殊的语法,它用来匹配值 二、模式的使用场景 (一)match match的每个分支箭头左边部分就是模式。 match VALUE {PATTERN > EXPRESSION,PATTERN > EXPRESSION,PATTERN > EXPRESSION, }例子 match x …...

紫光同创FPGA 多路视频处理:图像缩放+视频拼接显示,OV7725采集,提供PDS工程源码和技术支持
目录 1、前言免责声明 2、相关方案推荐FPGA图像缩放方案推荐FPGA视频拼接叠加融合方案推荐紫光同创FPGA图像采集方案推荐紫光同创FPGA图像缩放方案推荐紫光同创FPGA视频拼接方案推荐 3、设计思路框架为什么选择OV7725摄像头?视频源选择OV7725摄像头配置及采集动态彩…...
软考 系统架构设计师系列知识点之软件质量属性(4)
接前一篇文章:软考 系统架构设计师系列知识点之软件质量属性(3) 所属章节: 第8章. 系统质量属性与架构评估 第2节. 面向架构评估的质量属性 相关试题 3. 某公司欲开发一个在线交易系统。在架构设计阶段,公司的架构师…...

如何用BI制作图表组合?
BI(Business Intelligence)是一种通过收集、分析和可视化数据来帮助企业做出决策的技术和工具。在BI中,制作图表组合是一种常见的方式,可以将不同的图表类型组合在一起,以更全面地呈现数据。 下面将详细介绍如何使用B…...

使用frida来spawn Fork 的子进程
索引 需求测试程序父进程代码子进程代码 x64dbg插件功能开始调试 frida运行环境用到的文件和代码 需求 最近在学基础的Windows逆向知识,遇到个小问题。一个进程使用CreateProcessW创建的进程该如何在启动时附加,我想调试这个子进程启动时运行的函数。 …...

网工笔记整理:策略工具Filter-policy的使用
一、概述 Filter-Policy(过滤-策略)是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于IS-IS、OSPF、BGP等协议。 Filter-policy在距离矢量路由协议中的应用 filter-policy import:不发…...
数据结构和算法——查找算法
目录 线性查找法 二分查找法 插值查找法 斐波那契查找法 线性查找法 可以是有序的,也可以是无序的。 public class SeqSearch {public static void main(String[] args) {int[] arr new int[]{1, 9, 11, -1, 34, 89};int res seqSearch(arr, 34);}public st…...

Blender:对模型着色
Blender:使用立方体制作动漫头像-CSDN博客 上一步已经做了一个头像模型,我做的太丑了,就以这个外星人头像为例 首先切换到着色器编辑器 依次搜索:纹理坐标、映射、分离xyz和颜色渐变 这里的功能也是非常丰富和强大,…...

加密市场波动:地缘政治与美股走弱引发不确定性!
伴随着国庆假期的结束,多日波动率维持低位的加密市场也似乎开始苏醒。近期多次突破28000美元未果的比特币,于9日15:00开始从27800美元附近下跌,最低跌至27260美元,同期以太坊也至1550美元左右,创近半个月来新低。 Coin…...

ElementUI编辑表格单元格与查看模式切换的应用
需求:有时候在填写表单的时候,想要在输入的时候是input输入框的状态,但是当鼠标移出输入框失去焦点时,希望是查看的状态,这种场景可以通过 v-if实现 vue2ElementUi里面使用如下: 1.el-table标签注册 cell-…...
spring-创建Webservice服务
Web service是一个平台独立的,松耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。webservice用的是soap协议。 客户通过发送请求…...

Maven系列第3篇:详解maven解决依赖问题
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第3篇。 我们先来回顾一下什么是maven? maven是apache软件基金会组织维护的一款自动化构件工具,专注服务于java平台的项目构件和依赖管理。 本文主要内容…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...