2012-10-16 33 views
7

Câu hỏi này được hỏi (và trả lời) chỉ cho share một số kiến ​​thức với Cộng đồng SO.Ngoại lệ Weblogic Triển khai Ngoại lệ: PaddingException: Không thể thực hiện unpadding: byte pad không hợp lệ

Gần đây tôi đã đưa ra một ngoại lệ triển khai các ứng dụng web của tôi (sau khi nhận được một số thay đổi từ Repository SVN) mà nói:

< Lỗi> < Deployer> với ID '1350377960779' cho nhiệm vụ ' 1 '. Lỗi là: 'com.rsa.jsafe.JSAFE_PaddingException: Không thể thực hiện unpadding: byte pad không hợp lệ.' com.rsa.jsafe.JSAFE_PaddingException: Không thể thực hiện unpadding: byte pad không hợp lệ. tại com.rsa.jsafe.ca (Unknown Source) tại com.rsa.jsafe.JSAFE_SymmetricCipher.decryptFinal (Unknown Source) tại weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptBytes (JSafeEncryptionServiceImpl.java:124) tại weblogic.security.internal.encryption.JSafeEncryptionServiceImpl.decryptString (JSafeEncryptionServiceImpl.java:184) tại weblogic.security.internal.encryption.ClearOrEncryptedService.decrypt (ClearOrEncryptedService.java:96) Cắt ngắn. xem tệp nhật ký cho ngăn xếp hoàn chỉnh Gây ra bởi: com.rsa.jsafe.JSAFE_PaddingException: Không thể thực hiện unpadding: byte pad không hợp lệ.

Trả lời

10

Googling để tìm câu trả lời không hữu ích lắm. Sau khi kiểm tra các tệp nhận được từ kho lưu trữ SVN của tôi, tôi nhận thấy rằng một tài nguyên ứng dụng jdbc đã được thay đổi.

Kiểm tra tài nguyên jdbc chặt chẽ hơn tôi phát hiện ra rằng nó đã được sử dụng password-encrypted sở hữu mà chỉ được sử dụng cho các môi trường sản xuất

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

Vì vậy, tôi nhận xét ra khách sạn này và sử dụng tài sản sử dụng cho môi trường phát triển:

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

Và điều đó chỉ hoạt động tốt.

3

Tôi vừa gặp sự cố này và tất cả những gì tôi phải làm là lưu trang trên trang Hồ bơi kết nối trong khi mật khẩu trống. Tất nhiên sau đó nó sẽ thất bại. Sau đó, nhập mật khẩu và lưu lại. Thời gian này không có lỗi byte Pad và nó conencts mà không có thất bại.

+1

Đã thử phương pháp này trong WebLogic 12.1.3 và mặc dù có thể 'lưu' thay đổi, không thể 'Kích hoạt thay đổi' vẫn cho 'PaddingException'. – radimpe

+0

@radimpe Bạn có thể cần phải loại bỏ Target tạm thời, vì vậy bạn sẽ có thể lưu các thay đổi cấu hình của mình. – yannicuLar

0

Tôi đã nhấp vào Phản hồi của riêng MaVRSCL là hữu ích, vì nó hoạt động. Nhưng nhược điểm đó là mật khẩu của bạn đã trở thành hiển thị (có thể không phải là một vấn đề tại env phát triển).

Sự cố này với mã hóa mật khẩu có thể được khắc phục bằng cách mã hóa lại mật khẩu của bạn trong phiên bản weblogic của bạn.

Để làm như vậy, đi đến miền WebLogic của bạn, ví dụ: ORACLE_HOME \ user_projects \ lĩnh \ your_domain

Và thực hiện lệnh này: java weblogic.security.Mã hóa your_password

chí này ra cái gì đó như: {} AES 0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag =

Đây là mật khẩu được mã hóa của bạn ví dụ WebLogic của bạn.

Sau đó, chỉ cần thay thế nó tại thuộc tính được mã hóa mật khẩu bên trong cấu hình nguồn dữ liệu xml của bạn.

<password-encrypted>{AES}0gcupcB95gtlr6VYnT3TZK5PxiATDuIUe3kRKd3b/Ag=</password-encrypted> 
Các vấn đề liên quan