非法密钥大小:可能需要为JRE安装Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files

时间:2016-09-25 11:46:39

标签: java ruby-on-rails ruby-on-rails-4 java-7

我正在使用带有轨道的jruby。我在我的机器上安装了JDK7。每当我启动我的rails服务器并尝试运行我的应用程序时,我收到的错误为"Illegal key size: possibly you need to install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for your JRE"

我在google上搜索,发现我必须下载JDK-7安全策略文件。所以我从here下载了这些文件并将这些文件放到我的java目录路径"C:\Program Files\Java\jdk1.7.0_79\jre\lib\security"中。我认为这将解决我的问题,但我仍然得到同样的错误。

在粘贴java安全文件夹中的文件时,我收到包含"you will need to provide administration permission to copy this folder"信息的警告框。我一直在警告框的继续按钮,文件被复制。

我一定错过了什么。

请帮忙

1 个答案:

答案 0 :(得分:0)

我使用以下内容创建了一个文件config / initializers / unlimited_strength_cryptography.rb并且有效

if RUBY_PLATFORM == 'java' # Allows the application to work with other Rubies if not JRuby
  require 'java'
  java_import 'java.lang.ClassNotFoundException'

  begin
    security_class = java.lang.Class.for_name('javax.crypto.JceSecurity')
    restricted_field = security_class.get_declared_field('isRestricted')
    restricted_field.accessible = true
    restricted_field.set nil, false
  rescue ClassNotFoundException => e
    # Handle Mac Java, etc not having this configuration setting
    $stderr.print "Java told me: #{e}n"
  end
end