我們有涉及多臺服務器的系統設置。例如,當訪問管理服務器在用戶登錄到應用程序時執行身份驗證部分,當成功登錄時,它將HTTP請求轉發給Web服務器,Web服務器將其進一步轉發給應用程序服務器。多臺服務器上的加密解密
現在要求在AM server
的認證過程中,我們需要在cookie中寫入一些數據,在HTTP請求中添加這些cookie被轉發給應用服務器。部署在App Server上的應用程序將讀取這些Cookie並使用該值。
這我已經完成並測試成功。但實際上,Cookie中的數據需要採用加密格式。所以AM服務器應該加密數據,應用服務器應該解密數據以使用它。 我在AM服務器上創建了一個JCEKS keystore
,使用keytool命令爲其添加了一個加密密鑰。然後,在AM服務器上編寫的自定義類中,我使用Cipher以AES-128
算法對數據進行加密。這是成功完成的。
我還在我的應用程序服務器上創建了另一個JCEKS keystor
,使用keytool命令爲其添加了加密密鑰。然後我導出了AM服務器的keystore
的證書,並將其導入到App服務器的keystore
中,該服務器在App服務器的keystore
中創建TrustedCert
條目。 但是,當我使用解密密碼和AES-128應用服務器上的數據還,我得到異常:在我的密鑰庫設置
javax.crypto.BadPaddingException: Given final block not properly padded
我必須失去了一些東西。請提供一些關於如何做到這一點的指導。
謝謝!