ActiveSupport :: MessageEncryptor при развертывании: ресурсы: прекомпиляция - PullRequest
0 голосов
/ 28 августа 2018

У меня проблема с развертыванием приложения rails на сервере. Когда я пытаюсь развернуть на шаге deploy:assets:precompile, я получаю

 01 rake aborted!
  01 ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
  01 /var/www/spycommerce/shared/bundle/ruby/2.5.0/gems/activesupport-5.2.1/lib/active_support/message_encryptor.rb:206:in `rescue in _decrypt'
  ...
  01
  01 Caused by:
  01 OpenSSL::Cipher::CipherError:
  01 /var/www/spycommerce/shared/bundle/ruby/2.5.0/gems/activesupport-5.2.1/lib/active_support/message_encryptor.rb:201:in `final'
  ...

Когда я пытаюсь выполнить компиляцию руководства RAILS_ENV=production bundle exec rake assets:precompile Я не получаю ошибку

Capfile

# Load DSL and Setup Up Stages
require 'capistrano/setup'
require 'capistrano/deploy'

require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

require 'capistrano/rails'
require 'capistrano/bundler'
require 'capistrano/rvm'
require 'capistrano/puma'

install_plugin Capistrano::Puma  # Default puma tasks

# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

версия

rails -v => 5.2.1
capistrano -v => 3.11

Я пытаюсь исправить с config.require_master_key = true и создать ссылку set :linked_files, %w{config/master.key} в deploy.rb. ничего не помогает

1 Ответ

0 голосов
/ 24 сентября 2018

Я столкнулся с подобной проблемой при тестировании MessageEncryptor для приложения Rails Api из командной строки. Решение для предотвращения исключения InvalidMessage: если вам нужно использовать ActiveSupport :: MessageEncryptor вне контекста инициализации рельсов, вручную установите ActiveSupport :: MessageEncryptor.use_authenticated_message_encryption = true. Затем MessageEncryptor использует назначенный default_cipher aes-256-gcm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...