java – 在使用常春藤和私人公司存储库时,我可以在何处放置凭据
发布时间:2020-12-15 00:07:15 所属栏目:Java 来源:网络整理
导读:我使用Ant Ivy,而我公司最近为我们自己的私人图书馆设立了一个Nexus服务器. Ivy可以通过使用ibilio解析器和m2compatible = true从Nexus服务器获取依赖关系,但是我必须将凭据放在ivysettings.xml文件中. 不同的开发人员应该如何存储他们的凭据? ivysettings.
我使用Ant Ivy,而我公司最近为我们自己的私人图书馆设立了一个Nexus服务器. Ivy可以通过使用ibilio解析器和m2compatible = true从Nexus服务器获取依赖关系,但是我必须将凭据放在ivysettings.xml文件中.
不同的开发人员应该如何存储他们的凭据? ivysettings.xml文件是不是应该在vcs中提交? 我真的不想用纯文本存储我的密码. 解决方法
使用具有控制Nexus凭据的属性的设置文件:
<ivysettings> <property name="repo.host" value="default.mycompany.com" override="false"/> <property name="repo.realm" value="Sonatype Nexus Repository Manager" override="false"/> <property name="repo.user" value="deployment" override="false"/> <property name="repo.pass" value="deployment123" override="false"/> <credentials host="${repo.host}" realm="${repo.realm}" username="${repo.user}" passwd="${repo.pass}"/> .. .. </ivysettings> 运行构建时,您可以指定真实的用户名和密码: ant -Drepo.user=mark -Drepo.pass=s3Cret 更新/增强 将密码作为属性存储在文件系统上需要加密. Jasypt具有可生成加密字符串的命令行程序: $encrypt.sh verbose=0 password=123 input=s3Cret hXiMYkpsPY7j3aIh/2/vfQ== 这可以保存在构建的属性文件中: username=bill password=ENC(hXiMYkpsPY7j3aIh/2/vfQ==) 以下ANT目标将解密任何加密的ANT属性: <target name="decrypt"> <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/> <groovy> import org.jasypt.properties.EncryptableProperties import org.jasypt.encryption.pbe.StandardPBEStringEncryptor StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor() encryptor.setPassword(properties["master.pass"]) Properties props = new EncryptableProperties((Properties)properties,encryptor); props.propertyNames().each { properties[it] = props.getProperty(it) } </groovy> </target> 当然,为了使这项工作,用于加密属性的密码需要被指定为构建的一部分. ant -Dmaster.pass=123 这意味着解决方案只适用于隐藏数据休息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |