timwaters / mapwarper

free open source public map georeferencer, georectifier and warper
http://mapwarper.net
MIT License
193 stars 80 forks source link

Invalid Authenticity Token #157

Closed allthesignals closed 5 years ago

allthesignals commented 5 years ago

~Hi there - first off, thank you for this incredible work.~

~I'm very close to getting this set up in a Docker container, but I'm stuck on something: editing records throws an error, InvalidAuthenticityToken.~

~I don't want to change any source code because it seems like I am configuring something incorrectly. Any clues? Anything come to mind? Thanks so much!~

~Here's the full trace:~

``` actionpack (4.2.10) lib/action_controller/metal/request_forgery_protection.rb:181:in `handle_unverified_request' actionpack (4.2.10) lib/action_controller/metal/request_forgery_protection.rb:209:in `handle_unverified_request' devise (4.3.0) lib/devise/controllers/helpers.rb:253:in `handle_unverified_request' actionpack (4.2.10) lib/action_controller/metal/request_forgery_protection.rb:204:in `verify_authenticity_token' activesupport (4.2.10) lib/active_support/callbacks.rb:432:in `block in make_lambda' activesupport (4.2.10) lib/active_support/callbacks.rb:164:in `block in halting' activesupport (4.2.10) lib/active_support/callbacks.rb:504:in `block in call' activesupport (4.2.10) lib/active_support/callbacks.rb:504:in `each' activesupport (4.2.10) lib/active_support/callbacks.rb:504:in `call' activesupport (4.2.10) lib/active_support/callbacks.rb:92:in `__run_callbacks__' activesupport (4.2.10) lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks' activesupport (4.2.10) lib/active_support/callbacks.rb:81:in `run_callbacks' actionpack (4.2.10) lib/abstract_controller/callbacks.rb:19:in `process_action' actionpack (4.2.10) lib/action_controller/metal/rescue.rb:29:in `process_action' actionpack (4.2.10) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action' activesupport (4.2.10) lib/active_support/notifications.rb:164:in `block in instrument' activesupport (4.2.10) lib/active_support/notifications/instrumenter.rb:20:in `instrument' activesupport (4.2.10) lib/active_support/notifications.rb:164:in `instrument' actionpack (4.2.10) lib/action_controller/metal/instrumentation.rb:30:in `process_action' actionpack (4.2.10) lib/action_controller/metal/params_wrapper.rb:250:in `process_action' activerecord (4.2.10) lib/active_record/railties/controller_runtime.rb:18:in `process_action' actionpack (4.2.10) lib/abstract_controller/base.rb:137:in `process' actionview (4.2.10) lib/action_view/rendering.rb:30:in `process' actionpack (4.2.10) lib/action_controller/metal.rb:196:in `dispatch' actionpack (4.2.10) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' actionpack (4.2.10) lib/action_controller/metal.rb:237:in `block in action' actionpack (4.2.10) lib/action_dispatch/routing/route_set.rb:74:in `dispatch' actionpack (4.2.10) lib/action_dispatch/routing/route_set.rb:43:in `serve' actionpack (4.2.10) lib/action_dispatch/journey/router.rb:43:in `block in serve' actionpack (4.2.10) lib/action_dispatch/journey/router.rb:30:in `each' actionpack (4.2.10) lib/action_dispatch/journey/router.rb:30:in `serve' actionpack (4.2.10) lib/action_dispatch/routing/route_set.rb:817:in `call' omniauth (1.7.1) lib/omniauth/strategy.rb:190:in `call!' omniauth (1.7.1) lib/omniauth/strategy.rb:168:in `call' omniauth (1.7.1) lib/omniauth/strategy.rb:190:in `call!' omniauth (1.7.1) lib/omniauth/strategy.rb:168:in `call' omniauth (1.7.1) lib/omniauth/strategy.rb:190:in `call!' omniauth (1.7.1) lib/omniauth/strategy.rb:168:in `call' omniauth (1.7.1) lib/omniauth/strategy.rb:190:in `call!' omniauth (1.7.1) lib/omniauth/strategy.rb:168:in `call' omniauth (1.7.1) lib/omniauth/strategy.rb:190:in `call!' omniauth (1.7.1) lib/omniauth/strategy.rb:168:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/flash.rb:260:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/cookies.rb:560:in `call' rack (1.6.8) lib/rack/methodoverride.rb:22:in `call' warden (1.2.7) lib/warden/manager.rb:36:in `block in call' warden (1.2.7) lib/warden/manager.rb:35:in `catch' warden (1.2.7) lib/warden/manager.rb:35:in `call' rack (1.6.8) lib/rack/etag.rb:24:in `call' rack (1.6.8) lib/rack/conditionalget.rb:38:in `call' rack (1.6.8) lib/rack/head.rb:13:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/params_parser.rb:27:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/flash.rb:260:in `call' rack (1.6.8) lib/rack/session/abstract/id.rb:225:in `context' rack (1.6.8) lib/rack/session/abstract/id.rb:220:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/cookies.rb:560:in `call' activerecord (4.2.10) lib/active_record/query_cache.rb:36:in `call' activerecord (4.2.10) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call' activerecord (4.2.10) lib/active_record/migration.rb:377:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' activesupport (4.2.10) lib/active_support/callbacks.rb:88:in `__run_callbacks__' activesupport (4.2.10) lib/active_support/callbacks.rb:778:in `_run_call_callbacks' activesupport (4.2.10) lib/active_support/callbacks.rb:81:in `run_callbacks' actionpack (4.2.10) lib/action_dispatch/middleware/callbacks.rb:27:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/reloader.rb:73:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/remote_ip.rb:78:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' web-console (2.3.0) lib/web_console/middleware.rb:20:in `block in call' web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch' web-console (2.3.0) lib/web_console/middleware.rb:18:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' railties (4.2.10) lib/rails/rack/logger.rb:38:in `call_app' railties (4.2.10) lib/rails/rack/logger.rb:20:in `block in call' activesupport (4.2.10) lib/active_support/tagged_logging.rb:68:in `block in tagged' activesupport (4.2.10) lib/active_support/tagged_logging.rb:26:in `tagged' activesupport (4.2.10) lib/active_support/tagged_logging.rb:68:in `tagged' railties (4.2.10) lib/rails/rack/logger.rb:20:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/request_id.rb:21:in `call' rack (1.6.8) lib/rack/methodoverride.rb:22:in `call' rack (1.6.8) lib/rack/runtime.rb:18:in `call' rack (1.6.8) lib/rack/lock.rb:17:in `call' actionpack (4.2.10) lib/action_dispatch/middleware/static.rb:120:in `call' rack-cors (1.0.1) lib/rack/cors.rb:93:in `call' railties (4.2.10) lib/rails/engine.rb:518:in `call' railties (4.2.10) lib/rails/application.rb:165:in `call' rack (1.6.8) lib/rack/content_length.rb:15:in `call' thin (1.7.2) lib/thin/connection.rb:86:in `block in pre_process' thin (1.7.2) lib/thin/connection.rb:84:in `catch' thin (1.7.2) lib/thin/connection.rb:84:in `pre_process' thin (1.7.2) lib/thin/connection.rb:53:in `process' thin (1.7.2) lib/thin/connection.rb:39:in `receive_data' eventmachine (1.2.5) lib/eventmachine.rb:194:in `run_machine' eventmachine (1.2.5) lib/eventmachine.rb:194:in `run' thin (1.7.2) lib/thin/backends/base.rb:73:in `start' thin (1.7.2) lib/thin/server.rb:162:in `start' rack (1.6.8) lib/rack/handler/thin.rb:19:in `run' rack (1.6.8) lib/rack/server.rb:287:in `start' railties (4.2.10) lib/rails/commands/server.rb:80:in `start' railties (4.2.10) lib/rails/commands/commands_tasks.rb:80:in `block in server' railties (4.2.10) lib/rails/commands/commands_tasks.rb:75:in `tap' railties (4.2.10) lib/rails/commands/commands_tasks.rb:75:in `server' railties (4.2.10) lib/rails/commands/commands_tasks.rb:39:in `run_command!' railties (4.2.10) lib/rails/commands.rb:17:in `' bin/rails:8:in `require' bin/rails:8:in `' spring (2.0.2) lib/spring/client/rails.rb:28:in `load' spring (2.0.2) lib/spring/client/rails.rb:28:in `call' spring (2.0.2) lib/spring/client/command.rb:7:in `call' spring (2.0.2) lib/spring/client.rb:30:in `run' spring (2.0.2) bin/spring:49:in `' spring (2.0.2) lib/spring/binstub.rb:31:in `load' spring (2.0.2) lib/spring/binstub.rb:31:in `' bin/spring:13:in `require' bin/spring:13:in `' bin/rails:3:in `load' bin/rails:3:in `
' ```

This comes to a Javascript parsing error caused by the fact that I'm trying to make these YAML files work with environment variables: https://github.com/allthesignals/mapwarper/blob/master/config/application.yml#L3.

For some reason, Rails isn't parsing these templated YAML files, hence invalid JavaScript being dropped into the app.

I'm not sure why this is the case because the templated variables work for database.yml and secrets.yml.

allthesignals commented 5 years ago

Needed to change the way the app config was loaded in initializers/application_config.rb:

APP_CONFIG = YAML.load(ERB.new(File.read(CONFIG_PATH)).result)[Rails.env]
timwaters commented 5 years ago

That's great. Please let me know if there's other ways the code can be improved. I am also looking towards getting it fully Dockerized in the near future!

allthesignals commented 5 years ago

Thanks @timwaters - here's my fork here, you will see a Dockerfile and a docker-compose.yml file: https://github.com/allthesignals/mapwarper. Brief instructions were added to the README as well.

There are only 2 containers, the Rails app and the Redis cache. I am using hosting a Postgres database separately, but I think we will want to include a Docker container for that as well.