Weblogic 通过命令行变更数据源密码
起因
DBA通知数据库变更,对AdaminServer、服务进程kill -9后再启动,因密码错误重复连接数据库,导致锁用户。
解决方式
因应用无法顺利启动,就没办法通过weblogic控制台进行修改,只能另辟蹊径,看看能不能通过配置进行修改。
进行查找,在domain下的config/jdbc目录下,找到的数据源的配置信息。
<?xml version='1.0' encoding='UTF-8'?>
<jdbc-data-source xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle
.com/weblogic/jdbc-data-source http://xmlns.oracle.com/weblogic/jdbc-data-source/1.2/jdbc-data-source.xsd">
<name>cdg</name>
<jdbc-driver-params>
<url>XXX</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>XXX</value>
</property>
</properties>
<password-encrypted>{AES}CpFWUeoG1iGpaJJBh2ufw1sgg6420y3Q0iNhd/pcGAE=</password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
</jdbc-connection-pool-params>
<jdbc-data-source-params>
<jndi-name>XXX</jndi-name>
<global-transactions-protocol>OnePhaseCommit</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>
发现
搜索发现weblogic提供了weblogic.jar进行明文加密。
将weblogic.jar移动到domains根目录下,再执行一下命令:
java -cp weblogic.jar weblogic.security.Encrypt 密码
再更新到
后记
在操作中发现几处需要重点注意的问题
- weblogic.jar可以在系统根目录下全局搜索,但是一般存放在:~/weblogic/Oracle/Middleware/wlserver_xxx/server/lib/
- weblogic.jar一定要放在domains下的项目目录下,例如:~/weblogic/Oracle/Middleware/user_projects/domains/XXX
放在config下或者其他目录下使用无效。 - weblogic.jar应该也可以修改weblogic控制台密码(未经过验证)。
- 在修改密码时,如果密码复杂度高,出现一些符号,需要用单引号(')进行包裹,否则报错。
- weblogic控制台可以测试数据源是否生效。
巨人的肩膀
本文来自博客园,作者:疯狂马铃薯,转载请注明原文链接:https://www.cnblogs.com/hr0552/p/18247363

浙公网安备 33010602011771号