heroku - 配置在Heroku上使用的Spring TextEncryptor的正确方法是什么

标签 heroku spring-security

我有一个像这样定义的spring TextEncryptor

<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

在我的本地环境下工作正常。当我部署到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上使用正确的 key 大小是多少?

最佳答案

我的回答有点晚了,但是我写的是为了帮助有需要的人。默认情况下,Spring Security使用256位 key 进行加密。默认情况下,JDK不允许这样做,JDK仅支持最多128位 key 。

要解决此问题,您需要从oracle(Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 7 Download)下载 local_policy.jar US_export_policy.jar jar并将其替换为jdk_path/jre/lib/security/。确保重新启动应用程序服务器,以使更改生效。

另外,我不会将 key 放在属性文件中。相反,我建议您将其放在 keystore 中。如果您需要帮助,请告诉我。

关于heroku - 配置在Heroku上使用的Spring TextEncryptor的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619986/

相关文章:

推送到 heroku 后 CSS 不工作,但在本地主机上工作

java - 当命中 ExceptionMappingAuthenticationFailureHandler 时获取 Controller 类上的用户 ID

spring - 自定义错误页面 + spring security 3 + hasPermission

Spring Web MVC 渲染 View 时存在巨大的性能问题

spring-security - wso2is SingleLogoutProfile POST 绑定(bind)

java - 如何修复 Hibernate LazyInitializationException : failed to lazily initialize a collection of roles, 无法初始化代理 - 无 session

javascript - 找不到 Node.js/socket.io/socket.io.js express 4.0

ruby-on-rails - 实现 ElasticSearch 后,Rails 应用程序在 Heroku 上崩溃

android - 将meteor apk连接到heroku/mLab db

python - 错误 : Failed building wheel for psycopg2