2016-08-30 2 views
1

ich eine Config und die Schlüsseldatei mit diesem Befehl erstellt habenProblem mit der Entschlüsselung von Weblogic Credentials

java weblogic.Admin -username test_user -password test_user -userconfigfile C:\temp\testingconfig.config -userkeyfile C:\temp\testingkey.key STOREUSERCONFIG 

Die config und Schlüssel sind

weblogic.management.username = {3DES}1VR2QW0Yj3XHj/iEr+z9Mve3mJi0RSCw3J62m1rb063xLAHPTwXcS6X+VRC6tI8xsHriNfYtsB0\= weblogic. management.password = {3DES}ALU/yO2Zi4Z7SkVj1qJDvckmy7Y1DpDc7654xPIeg2zaj5On6yxa6xB0L4Xf0oS0d/9vtLFkgps\=

Wenn ich versuche, diese Anmeldeinformationen mit Config und Schlüssel wi zu entschlüsseln th meines Java-Code, ich bin einen anderen verschlüsselten Wert bekommen:

Passwort = [[email protected]

Benutzername = {AES}OLU4ELDpdXulGpd4abYvYbN7i/ngvXbBFZ+/UyYk89I=

Der Java-Code, den ich geschrieben habe, ist

UsernameAndPassword file = UserConfigFileManager 
        .getUsernameAndPassword(<Path to config file>, 
          <Path to key file>",weblogic.management"); 

So erhalten Sie entschlüsselte Anmeldeinformationen in Java-Code als test_user/test_user mit Config und Schlüssel.

Bitte helfen ..

Antwort

0

Für das Problem zu lösen, müssen wir die folgenden Schritte ausführen:

  • haben neueste Version von WebLogic. Neuere Versionen arbeiten mit AES-Sicherheitsalgorithmus.
  • Für den String-Wert von Benutzername/Passwort erhalten haben, können wir tun:
    • file.getUsername().toString/file.getPassword().toString
    • file.getUsername()/file.getPassword()
    • new String(file.getUsername())/new String(file.getPassword())

aus allen drei wir haben zu folgen der dritte. Kennt den genauen Grund nicht. Aber das Erstellen eines String-Objekts und das anschließende Abrufen von Werten gibt uns das richtige Ergebnis. Der genaue Wert, den wir in den drei Fällen erhalten haben, war.

  1. Erster Fall: - Benutzername/Passwort = Einiger verschlüsselter Wert
  2. Zweiter Fall: -

    • Benutzername: - Korrekter Wert
    • Passwort: - null
  3. Dritter Fall:

    • Benutzername: - Korrekter Wert
    • Passwort: - Korrekter Wert
0

Probe WLST-Skript:

from weblogic.security import UserConfigFileManager 

def decrypt(cred_file, secret_key): 
    u_and_p = UserConfigFileManager.getUsernameAndPassword(cred_file, secret_key, "weblogic.management") 
    return (u_and_p.getUsername(), u_and_p.getPassword().tostring()) 

config_path = '/path/to/config/file' 
key_path = '/path/to/key/file' 

print decrypt(config_path, key_path) 

Beispielausgabe:

('admin', 'Pa$$w0rd') 

Dieser Code ohne Probleme für ein paar Jahre für mich arbeitet.

Und ein Beispiel, wie neue Paare von WLST zu erstellen:

import os 
sys.path.append(os.path.dirname(os.path.realpath(sys.argv[0]))) 
from weblogic.security import UserConfigFileManager 
from weblogic.security import UsernameAndPassword 

ADMIN_USERNAME = 'admin' 
ADMIN_PASSWORD = 'Pa$$w0rd' 
CONFIG_PATH = '/path/to/config/file' 
KEY_PATH = '/path/to/key/file' 

System.setProperty('weblogic.management.confirmKeyfileCreation', 'true') 

u_and_p = UsernameAndPassword(ADMIN_USERNAME, ADMIN_PASSWORD) 
UserConfigFileManager.setUsernameAndPassword(u_and_p, CONFIG_PATH, KEY_PATH, 'weblogic.management') 
Verwandte Themen