有没有办法恢复我在 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 文件夹中找到