2012-10-16 27 views
7

Questa domanda viene posta (e risposta) solo a share alcune conoscenze con la SO Community.Eccezione distribuzione weblogic: PaddingException: impossibile eseguire il padding: byte pad non valido

Ho recentemente si avvicinò con un'eccezione dispiegamento della mia applicazione web (dopo aver ricevuto alcuni cambiamenti dal repository SVN) che dicono:

< errore> < Deployer> con ID '1.350.377,960779 millions' per l'attività ' 1' . L'errore è: 'com.rsa.jsafe.JSAFE_PaddingException: Impossibile eseguire un padding: byte pad non valido.' com.rsa.jsafe.JSAFE_PaddingException: Impossibile eseguire il padding: byte pad non valido. a com.rsa.jsafe.ca (Fonte sconosciuta) a com.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal (fonte sconosciuta) a weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes (JSafeEncryptionServiceImpl.java:124) a weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString (JSafeEncryptionServiceImpl.java:184) a weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt (ClearOrEncryptedService.java:96) troncato. vedere il file di registro per stacktrace completo causato da: com.rsa.jsafe.JSAFE_PaddingException: Impossibile eseguire il padding: byte pad non valido.

risposta

10

Cerca su Google per trovare una risposta non è stato molto utile. Dopo aver esaminato i file ricevuti dal mio repository SVN, ho notato che una risorsa dell'applicazione jdbc è stata modificata.

Esaminando la risorsa jdbc più da vicino ho scoperto che stava usando la proprietà password-encrypted che viene utilizzato solo per ambienti di produzione

<password-encrypted>{AES}some+very+long+encrypted+string</password-encrypted> 

Così ho commentato questa proprietà e utilizzato l'immobili utilizzati per l'ambiente di sviluppo:

<properties> 
    <property> 
     <name>user</name> 
     <value>MY_USER</value> 
    </property> 
    <property> 
     <name>password</name> 
     <value>MY_PASS_IN_PLAIN_TEXT</value> 
    </property> 
    </properties> 

E ha funzionato bene.

3

Ho appena avuto questo problema e tutto ciò che dovevo fare era salvare la pagina nella pagina Pool di connessioni mentre la password era vuota. Certo che poi fallirebbe. Quindi inserisci la password e salva di nuovo. Questa volta nessun errore di byte Pad e si integra senza errori.

+1

provato questo approccio in WebLogic 12.1.3 e mentre è possibile 'salvare' il cambiamento, è in grado di 'attivare le modifiche' ancora dando la 'PaddingException'. – radimpe

+0

@radimpe Potrebbe essere necessario rimuovere temporaneamente la destinazione, in modo da poter salvare le modifiche di configurazione. – yannicuLar

0

Ho fatto clic sulla risposta di MaVRoSCy come utile, perché funziona. Ma il lato negativo è che la tua password è diventata visibile (potrebbe non essere un problema in fase di sviluppo).

Questo problema con la crittografia della password può essere risolto ricodificando la password nell'istanza weblogic.

Per farlo, vai al tuo dominio weblogic, es: ORACLE_HOME \ user_projects \ domini \ Your_Domain

ed eseguire il seguente comando: java weblogic.security.Encrypt your_password

Questa volontà di uscita qualcosa di simile: {} AES 0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag =

Questa è la vostra password crittografata per l'istanza weblogic.

Quindi basta sostituirlo con la proprietà codificata tramite password all'interno della configurazione xml dell'origine dati.

<password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted>