恢复 Weblogic 中的数据源密码

恢复 Weblogic 中的数据源密码

有没有办法恢复我在 Weblogic 应用服务器中使用的 jdbc 数据源的密码?我可以更改它,但由于我不完全确定我们在哪里使用数据库,所以这会相当复杂。

我拥有该服务器的完全管理权限,因此如果我必须在配置文件等中查找某些内容,那就没问题了。

答案1

我用过这个方法,非常成功:

http://recover-weblogic-password.appspot.com/

或者你也可以在本地进行 -说明摘自此处或者代码可以在这里找到

/$BEA_HOME/wlserver_10.3/common/bin/wlst.sh decryptPassword.py /full/path/to/weblogic-domain/ "{3DES}s0meCr4zyH4$hedV4lue="

答案2

在 weblogic 配置文件中,例如新版本中的 config.xml 或 *-datasource.xml,密码将被加密。

<password-encrypted>{3DES}oxUmxhBtdfe0h+0000oWHrl18jw==</password-encrypted>

如果你的应用程序代码在文件(如 Spring 的 applicationContext.xml )中有一些内部配置,你可能会幸运地得到这类东西

<bean id="myDataSource"
  class="org.apache.commons.dbcp.BasicDataSource">

  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />

  <property name="url" value="jdbc:oracle:thin:@x.x.x.x:1522:portaldb" />

  <property name="username" value="myUser" />

  <property name="password" value="myPassword" />

答案3

这是 Java 版本:

import weblogic.security.internal.SerializedSystemIni;
import weblogic.security.internal.encryption.ClearOrEncryptedService;
import weblogic.security.internal.encryption.EncryptionService;


public class WeblogicDecrypt{

    public static void main(String[] args){
        String pass = "{3DES}**********";
        EncryptionService service= SerializedSystemIni.getEncryptionService("c:\\yourDomain\\");
        ClearOrEncryptedService clear = new ClearOrEncryptedService(service);
        String psw = clear.decrypt(pass);
        System.out.println("password:" + psw);
    }

}

所需的 jar 可以在 weblogic 服务器 lib 文件夹中找到

相关内容