WLSDM ile weblogic admin console kullanıcı adı ve şifresini veya data source ların şifrelerini encyrpt halden çözebiliriz.

Bu işleme admin console kullanıcı adını veya şifresinin unuttuğumuz durumlarda veya data source larımızı başka bir domaine taşıdığımız zaman ihtiyaç duyarız.

Şimdi bir örnekle hash li kullanıcı adımızı ve şifremizi çözecek olursak;

  • Öncelikle wlst’i çalıştırırız bunun için $WL_HOME/oracle_common/common/bin dizinine gidip wlst.sh dizinini çalıştırırız.

NOT : MiddlewareHome dizininin nasıl bulacağımıza geçmeden önce kısaca weblogic’deki directory yapısından bahsetmek istiyorum.

  • MW_HOME : Bu değişken ve ilgili dizin yolu, Oracle Fusion Middleware’in bulunduğu konumu belirtir. Bir MW_HOME’da bir WL_HOME, bir ORACLE_COMMON_HOME ve bir veya daha fazla ORACLE_HOME var.
  • WL_HOME: Bu değişken ve ilgili dizin yolu, bir WebLogic Sunucusunu barındırmak için gereken yüklü dosyaları içerir, örneğin .MW_HOME/wlserver_10.3
  • ORACLE_HOME: Bu değişken, Oracle HTTP Sunucusu, Oracle SOA Suite veya Oracle Internet Directory gibi bir Oracle Fusion Middleware ürününün kurulu olduğu ve o ürünün binary’lerinin güncel bir prosedürde kullanıldığı yere işaret eder. Örneğin: MW_HOME/iam
  • ORACLE_COMMON_HOME: Bu değişken ve ilgili dizin yolu, Oracle Fusion Middleware Ortak Java Required Files (JRF) Kütüphanelerinin ve Oracle Fusion Middleware Enterprise Manager kütüphanelerinin kurulu olduğu yere işaret eder. Örnek: MW_HOME/oracle_common

Bende MW_HOME dizinimi bulmak için WL_HOME değişkenini kullanacağım. WL_HOME’u bulmak için çalışan bir JVM’niz varsa aşağıdaki komutu kullanarak WLS_HOME’u buluruz buradan da WL_HOME ‘u buluruz ve daha sonrasında MW_HOME’u buluruz;

ps -eaf|grep -i AdminServer| fmt |grep -i "\-Dweblogic.home" --color
-Dweblogic.home=/oracle/product/Middleware12.1.3/wlserver/server

Yukarıdaki WLS_HOME’dan anlıyorum ki benim WL_HOME’um aşağıdaki gibi (WLS_HOME ile WL_HOME aynı şeyler değildir, WL_HOME dizini WLS_HOME dizininin bir altındaki dizindir);

-Dweblogic.home=/oracle/product/Middleware12.1.3/wlserver

WL_HOME danda MW_HOME dizinini buluyorum;

 -Dweblogic.home=/oracle/product/Middleware12.1.3 

Eğer çalışan bir JVM’niz yoksa ikinci bir yöntem ise weblogic.jar dosyasını aratarak MW_HOME dizinini bulabiliriz.

find /oracle -name "weblogic.jar"| sed 's/\/server\/lib\/weblogic.jar//g'
./product/Middleware12.1.3
  • Tamamdır artık $WL_HOME/oracle_common/common/bin dizinine gidip, wlst.sh dizinini çalıştırabiliriz.

./wlst.sh
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Initializing WebLogic Scripting Tool (WLST) ...
Welcome to WebLogic Server Administration Scripting Shell
Type help() for help on available commands
wls:/offline>
  • Daha sonra aşağıdaki değişkenleri ayarlayın. (Domain yolunu kendinizle değiştirin)
domain = "/oracle/domains/test_domain"
service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)

NOT : Domain yolunu bilmiyorsak ve bulmak istiyorsak, WL_HOME dizinindeki domain_registry.xml dosyasına bakabiliriz.

cat $WM_HOME/domain-registry.xml
<?xml version="1.0" encoding="UTF-8"?>
<domain-registry xmlns="http://xmlns.oracle.com/weblogic/domain-registry">
<domain location="/oracle/domains/test_domain"/>
<domain location="/oracle/domains/test1_domain"/>
  • Şimdi değişkenleride set ettiğimize göre son olarak şifrenin hashli halini bulmalıyız. Eğer admin console’un kullanıcı adınının ve şifresini hasli halini bulmak istiyorsak bunun için bakmamız gereken dizin; $DOMAIN_HOME/servers/AdminServer/security/boot.properties dizinidir.

NOT : Eğer domaindeki data source ları taşıdıysak ve data source larda kullanılan şifreyi çözmek istersek, şifrenin hash li halini almak için DOMAIN_HOME/config/jdbc dizinini kullanabiliriz.

cat /u01/domains/dtvs_domain/servers/AdminServer/security/boot.properties
#Mon Feb 27 10:42:40 EET 2017
password={AES}1ehpUrWJ5V8YcasdwerpluzC85SOtA40pQ2+aHJYdHU\=
username={AES}zezlqKMLGSJMJrsVzV0poRUm9rMVSeRvtDGpKhDXc4I\=
  • Şimdi bulduğumuz hashli şifreyi çözmek için son olarak aşağıdaki komutu çalıştırırız.

NOT : Escape karakter için kullanılan  \ karakterini hashli şifreden kaldırmamız gerekiyor yoksa hata alırız.

print "Weblogic server Admin password : %s" %encryption.decrypt("{AES}1ehpUrWJ5V8YcasdwerpluzC85SOtA40pQ2+aHJYdHU=")

Weblogic server Admin password : testtes

Mustafa Bektaş Tepe
İyi Çalışmalar

Loading