通过WLST解密weblogic控制台账号密码
重置weblogic控制台的账号密码需要重新启停server,在正式的业务环境中无法满足该需求,如果忘记了weblogic 的控制台密码其实可以直接使用WLST来解密账号密码。
参考资料:
https://blog.csdn.net/sha_qima/article/details/109194277?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-11&spm=1001.2101.3001.4242
一、设置环境变量
找到setWLSEnv.sh文件,设置环境变量,确定CLASSPATH有输出
find /home/weblogic/ -name setWLSEnv.sh
source /home/weblogic/WLS12213/wlserver/server/bin/setWLSEnv.sh
echo $CLASSPATH
二、查看加密文件里面的配置
boot.properties为密码文件看到加密文件之后,就发现密码和用户名都通过AES加密了,一会解密的时候要使用该加密文件里面的相关内容
find /home/weblogic/ -name boot.properties
cat boot.properties
密码文件如下
三、通过WLST查看weblogic的控制台账号和密码
java weblogic.WLST
进入WLST的命令行,先输入以下三个参数,domain为weblogic的domain目录,根据自己的环境进行适当的修改,service和encryption就照着输入即可
wls:/offline> domain = "/home/weblogic/user_projects/domains/base_domain/"
wls:/offline> service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
wls:/offline> encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)
根据boot.properties的文件内容,解密自己需要的账号和密码
wls:/offline> print "Weblogic server Admin password: %s" %encryption.decrypt("{AES}MbYXSj9hXbbqJp5JfFe1by9z/bpVI6ZjMNG7tBKoP5o=")
wls:/offline> print "Weblogic server Admin name: %s" %encryption.decrypt("{AES}mYmg0Ck1QE/cTr06h1SlbL8Ua95N4xE3L1Q5GzLpAsg=")
注意:如果boot.properties里的文件有\符号的话,直接不加这个符号,不同的domain之间不能相互通过boot.properties文件进行解密。