使用彈簧TextEncryptor正確的方式,我有這樣的什麼是配置在Heroku
<bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors"
factory-method="text">
<constructor-arg value="${security.encryptPassword}" />
<constructor-arg value="${security.encryptSalt}" />
</bean>
被送入我的地方,這些特性
security.encryptPassword=47582920264f212c566d5e5a6d
security.encryptSalt=39783e315e6a207e733d6f4141
的正常工作定義彈簧TextEncryptor環境。當我部署到Heroku我得到
java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key
at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:110)
at org.springframework.security.crypto.encrypt.AesBytesEncryptor.encrypt(AesBytesEncryptor.java:65)
at org.springframework.security.crypto.encrypt.HexEncodingTextEncryptor.encrypt(HexEncodingTextEncryptor.java:36)
...
Caused by: java.security.InvalidKeyException: Illegal key size
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:972)
at javax.crypto.Cipher.implInit(Cipher.java:738)
at javax.crypto.Cipher.chooseProvider(Cipher.java:797)
at javax.crypto.Cipher.init(Cipher.java:1276)
at javax.crypto.Cipher.init(Cipher.java:1215)
at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:105)
... 53 more
所以我嘗試了一些小鍵,但我總是得到同樣的問題。在Heroku上使用的正確密鑰大小是多少?
是的,這是本地安裝的正確解決方案。重點在於像Heroku這樣的遠程託管平臺,我們無法控制JDK。 –
我真了不起 - 爲什麼這些文件沒有與Java捆綁在一起。 – msangel
@msangel我會說,它的美國加密出口限制。我很驚訝我們(那些非美國公民)有這樣的免費訪問權限)。 – HankCa