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.
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.
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.
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>