众所周知,最简单的方法就是把用户名和密码直接写到命令里面。
${PROFILE_HOME}/bin/stopServer.sh serverXYZ -username XYZ -password XYZ
但是这样做的话,就把明文的密码暴露出来了,不安全。可以使用下面介绍的方法进行编码。
1、首先设置一下环境变量
WAS_HOME=/opt/data/IBM/WebSphere/AppServer
2、编码
(1) 我们拿 dmgr 做试验,比如我的 dmgr 概要文件叫做 Dmgr01
cd ${WAS_HOME}/profiles/Dmgr01/properties/
(2) 先备份文件 soap.client.props
cp -p soap.client.props soap.client.props.original
(3) 修改文件 soap.client.props,把用户名和密码分别写到下面两行的等号后面:
com.ibm.SOAP.loginUserid=
com.ibm.SOAP.loginPassword=
比如我的:
com.ibm.SOAP.loginUserid=wasadmin
com.ibm.SOAP.loginPassword=123456
(4) 开始编码
../bin/PropFilePasswordEncoder.sh soap.client.props com.ibm.SOAP.loginPassword -noBackup
(5) 确认一下编码的结果
[properties]# diff soap.client.props soap.client.props.original
31,32c31,32
< com.ibm.SOAP.loginUserid=wasadmin
< com.ibm.SOAP.loginPassword={xor}bm1sa2pp
---
> com.ibm.SOAP.loginUserid=
> com.ibm.SOAP.loginPassword=
|
(6) 现在停止 dmgr 的时候就不需要手工输入密码了
../bin/stopManager.sh
3、解码
如果不小心忘记了密码,可以通过这个方法找回来。
WAS_PASS={xor}bm1sa2pp
JAR_FILE=securityimpl.jar
JAR_PATH=`find ${WAS_HOME} -type f -name ${JAR_FILE}`
JAR_FOLDER=`dirname ${JAR_PATH}`
WAS_JARS=$(dirname $(find ${WAS_HOME} -type f -name securityimpl.jar))
${WAS_HOME}/java/bin/java -Djava.ext.dirs=${JAR_FOLDER} -cp ${JAR_FILE} com.ibm.ws.security.util.PasswordDecoder ${WAS_PASS}
结果如下:
encoded password == "{xor}bm1sa2pp", decoded password == "123456"
阅读(3120) | 评论(0) | 转发(0) |