Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Weblogic Deployment Exception : PaddingException: Could not perform unpadding: invalid pad byte

This question is asked (and answered) just to share some knowledge with the SO Community.

I have recently came up with a deployment Exception of my web application (after receiving some changes from the SVN Repository) that said:

< Error > < Deployer > with ID '1350377960779' for task '1'. Error is: 'com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.' com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte. at com.rsa.jsafe.c.a(Unknown Source) at com.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal(Unknown Source) at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes(JSafeEncryptionServiceImpl.java:124) at weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString(JSafeEncryptionServiceImpl.java:184) at weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt(ClearOrEncryptedService.java:96) Truncated. see log file for complete stacktrace Caused By: com.rsa.jsafe.JSAFE_PaddingException: Could not perform unpadding: invalid pad byte.

like image 218
MaVRoSCy Avatar asked Oct 16 '12 09:10

MaVRoSCy


3 Answers

I just had this problem, and all I had to do was save the page on the Connection Pool page while the password was blank. Of course then it would fail. Then put in the password and save again. This time no Pad byte error and it conencts without fail.

like image 133
Mindbender Avatar answered Nov 14 '22 00:11

Mindbender


I clicked MaVRoSCy own response as usefull, because it works. But the downside it's that your password became visible (might not be a problem at development env).

This problem with password encryption can be overcome by reencrypting your password at your weblogic instance.

To do so, go to your weblogic domain, ex: ORACLE_HOME\user_projects\domains\YOUR_DOMAIN

And execute this command: java weblogic.security.Encrypt YOUR_PASSWORD

This will output something like: {AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=

This is your encrypted password for your weblogic instance.

Then just replace it at your password-encrypted property inside datasource xml configuration.

<password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted>
like image 36
dchang Avatar answered Nov 14 '22 00:11

dchang


Googling to find an answer was not very helpful. After examining the files received from my SVN repository, i noticed that a jdbc application resource was changed.

Examining the jdbc resource more closely i found that it was using the password-encrypted property which is used only for production environments

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

So I commented out this property and used the property used for the development environment:

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

And that worked just fine.

like image 15
MaVRoSCy Avatar answered Nov 14 '22 00:11

MaVRoSCy