使用弹簧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