aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
Commit message (Collapse)AuthorAgeFilesLines
* Make internal methods in `AbstractController::Rendering` to privateRyuta Kamizono2017-10-021-0/+1
|
* Remove `:api:` tag that has leaked on the doc directly [ci skip]Ryuta Kamizono2017-09-304-22/+3
| | | | | | | | | | | | Currently `:api:` tag has leaked on the doc directly since RDoc doesn't support `:api:` tag directive. http://api.rubyonrails.org/v5.1/classes/AbstractController/Rendering.html So `:api: private` doesn't work as expected. We are using `:nodoc:` for the purpose. Related #13989.
* Don't use Active Support where it is not needed.yuuji.yaginuma2017-09-301-1/+1
| | | | | | | | | This code has been changed with https://github.com/rails/rails/pull/30735/files#diff-8e5f6b33c191ad6dec07f3288345a13fL47. However, `active_support/time` is not load automatically, so if use Action Pack alone, `days` method can not use and an error occurs. In this case, I think that there is no problem by specifying a value with Integer.
* Merge pull request #30735 from tjschuck/fix_doc_code_formattingEileen M. Uchitelle2017-09-291-33/+38
|\ | | | | Fix formatting in ActionDispatch::SSL middleware docs
| * Fix formatting in ActionDispatch::SSL middleware docsT.J. Schuck2017-09-271-33/+38
| | | | | | | | | | | | | | Before: https://monosnap.com/file/J6xewF0tYpm6dC9nSTe82ddsHAOcM5.png After: https://monosnap.com/file/0tCYicLXNqRHAEMDb81u0aLb3gH9Wf.png [ci skip]
* | Test for nil, people not likely to assign it false.Kasper Timm Hansen2017-09-281-2/+2
| |
* | Merge pull request #30709 from ↵Kasper Timm Hansen2017-09-282-3/+28
|\ \ | |/ |/| | | | | mikeycgto/actiondispatch-use-aead-encrypted-cookies-patch Fixes for use_authenticated_cookie_encryption
| * Fixes for use_authenticated_cookie_encryptionMichael Coyne2017-09-272-3/+28
| | | | | | | | Use CBC encryption is this configuration value is set to false
* | Fix indentation in CHANGELOG [ci skip]Ryuta Kamizono2017-09-261-3/+3
| |
* | Fix cookies/session tests broken after merging key rotation.Kasper Timm Hansen2017-09-251-2/+3
|/ | | | | | | | | | | | Based on, yet closes https://github.com/rails/rails/pull/30708 Fix the session test by properly truncating the legacy encryption key for cbc encryption. Borrowed straight from 👆. Fix the cookies test a little differently than the PR. Basically keep every config within the config block. [ Michael Coyne & Kasper Timm Hansen ]
* Fix "warning: `*' interpreted as argument prefix"Ryuta Kamizono2017-09-251-2/+2
|
* Use new rotation signature in cookies.Kasper Timm Hansen2017-09-242-68/+20
| | | | [ Michael Coyne & Kasper Timm Hansen ]
* Add key rotation cookies middlewareMichael Coyne2017-09-248-229/+273
| | | | | | Using the action_dispatch.cookies_rotations interface, key rotation is now possible with cookies. Thus the secret_key_base as well as salts, ciphers, and digests, can be rotated without expiring sessions.
* Use the default Capybara registered puma server configurationThomas Walpole2017-09-183-17/+8
|
* [ci skip] Prefer credentials to secrets in docs.Kasper Timm Hansen2017-09-132-28/+12
| | | | | | | Removes most mentions of secrets.secret_key_base and explains credentials instead. Also removes some very stale upgrade notices about Rails 3/4.
* Add credentials using a generic EncryptedConfiguration class (#30067)David Heinemeier Hansson2017-09-111-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * WIP: Add credentials using a generic EncryptedConfiguration class This is sketch code so far. * Flesh out EncryptedConfiguration and test it * Better name * Add command and generator for credentials * Use the Pathnames * Extract EncryptedFile from EncryptedConfiguration and add serializers * Test EncryptedFile * Extract serializer validation * Stress the point about losing comments * Allow encrypted configuration to be read without parsing for display * Use credentials by default and base them on the master key * Derive secret_key_base in test/dev, source it from credentials in other envs And document the usage. * Document the new credentials setup * Stop generating the secrets.yml file now that we have credentials * Document what we should have instead Still need to make it happen, tho. * [ci skip] Keep wording to `key base`; prefer defaults. Usually we say we change defaults, not "spec" out a release. Can't use backticks in our sdoc generated documentation either. * Abstract away OpenSSL; prefer MessageEncryptor. * Spare needless new when raising. * Encrypted file test shouldn't depend on subclass. * [ci skip] Some woordings. * Ditch serializer future coding. * I said flip it. Flip it good. * [ci skip] Move require_master_key to the real production.rb. * Add require_master_key to abort the boot process. In case the master key is required in a certain environment we should inspect that the key is there and abort if it isn't. * Print missing key message and exit immediately. Spares us a lengthy backtrace and prevents further execution. I've verified the behavior in a test app, but couldn't figure the test out as loading the app just exits immediately with: ``` /Users/kasperhansen/Documents/code/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `load': marshal data too short (ArgumentError) from /Users/kasperhansen/Documents/code/rails/activesupport/lib/active_support/testing/isolation.rb:23:in `run' from /Users/kasperhansen/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.10.2/lib/minitest.rb:830:in `run_one_method' from /Users/kasperhansen/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/minitest-5.10.2/lib/minitest/parallel.rb:32:in `block (2 levels) in start' ``` It's likely we need to capture and prevent the exit somehow. Kernel.stub(:exit) didn't work. Leaving it for tomorrow. * Fix require_master_key config test. Loading the app would trigger the `exit 1` per require_master_key's semantics, which then aborted the test. Fork and wait for the child process to finish, then inspect the exit status. Also check we aborted because of a missing master key, so something else didn't just abort the boot. Much <3 to @tenderlove for the tip. * Support reading/writing configs via methods. * Skip needless deep symbolizing. * Remove save; test config reader elsewhere. * Move secret_key_base check to when we're reading it. Otherwise we'll abort too soon since we don't assign the secret_key_base to secrets anymore. * Add missing string literal comments; require unneeded yaml require. * ya ya ya, rubocop. * Add master_key/credentials after bundle. Then we can reuse the existing message on `rails new bc4`. It'll look like: ``` Using web-console 3.5.1 from https://github.com/rails/web-console.git (at master@ce985eb) Using rails 5.2.0.alpha from source at `/Users/kasperhansen/Documents/code/rails` Using sass-rails 5.0.6 Bundle complete! 16 Gemfile dependencies, 72 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Adding config/master.key to store the master encryption key: 97070158c44b4675b876373a6bc9d5a0 Save this in a password manager your team can access. If you lose the key, no one, including you, can access anything encrypted with it. create config/master.key ``` And that'll be executed even if `--skip-bundle` was passed. * Ensure test app has secret_key_base. * Assign secret_key_base to app or omit. * Merge noise * Split options for dynamic delegation into its own method and use deep symbols to make it work * Update error to point to credentials instead * Appease Rubocop * Validate secret_key_base when reading it. Instead of relying on the validation in key_generator move that into secret_key_base itself. * Fix generator and secrets test. Manually add config.read_encrypted_secrets since it's not there by default anymore. Move mentions of config/secrets.yml to config/credentials.yml.enc. * Remove files I have no idea how they got here. * [ci skip] swap secrets for credentials. * [ci skip] And now, changelogs are coming.
* :scissors:Ryuta Kamizono2017-09-071-1/+1
| | | | [ci skip]
* fix type fully qualified [ci skip]Yauheni Dakuka2017-09-061-1/+1
|
* Merge pull request #30367 from ptoomey3/consistent-cache-control-headersAaron Patterson2017-09-053-8/+34
|\ | | | | Normalize/process Cache-Control headers consistently
| * Don't touch an unused headerPatrick Toomey2017-08-231-1/+0
| | | | | | | | | | | | The prior logic explictly set `Cache-Control` to `nil`. But, we would only reach that logic if the header was not set to begin with. So, rather than give it any value at all, just leave it alone.
| * Decouple the merge/normalization and conditional cache control logicPatrick Toomey2017-08-232-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The prior logic was trying to do too many things at once. For all responses, we want to perform two distinct steps: * Merge/normalize the `Cache-Control` values found in HTTP headers and those found in the `@cache_control` hash. * Conditionally set a default `Cache-Control` header value when we have an ETag This change separates these concerns since the merge/normalize step should occur for all responses, but the second should only occur when we have already set an ETag/last modified value. Normally ETag middleware will set a default `Cache-Control`, but only if an existing ETag is not already set. So, in the cases where an ETag is set, we need to set the default `Cache-Control` value ourselves.
| * This constant is no longer usedPatrick Toomey2017-08-221-1/+0
| |
| * Let middleware handle default cache behaviorPatrick Toomey2017-08-221-1/+2
| |
| * Use equality in place of refute assertions for accuracyPatrick Toomey2017-08-221-4/+2
| |
| * Normalize/process Cach-Control headers consistentlyPatrick Toomey2017-08-222-3/+24
| | | | | | | | | | | | | | | | | | | | In the existing logic, the `Cache-Control` header may or may not get normalized by additional logic depending on whether `response.cache_conrol` has been modified. This leads to inconsistent behavior, since sometimes `Cache-Control` can contain whatever a user sets and sometimes it gets normalized, based on the logic inside of `set_conditional_cache_control!`. It seems like this normalization process should happen regardless to ensure consistent behavior.
* | This commit adds:Assain2017-09-042-4/+28
| | | | | | | | | | | | | | | | * Documentation for Duration support added to signed/encrypted cookies * Changelog entries for the duration support and expiry metadata added to cookies [ci skip]
* | Merge pull request #30493 from ↵Ryuta Kamizono2017-09-022-1/+13
|\ \ | | | | | | | | | | | | koic/fix_cant_modify_frozen_string_error_in_ac_rendering Fix `can't modify frozen String` error in AC::Rendering
| * | Fix `can't modify frozen String` error in AC::RenderingKoichi ITO2017-09-022-1/+13
| | |
* | | Replace unnecessary link with typewriter text [ci skip]Yoshiyuki Hirano2017-09-021-2/+2
| | |
* | | Remove unused requireRyuta Kamizono2017-09-011-2/+0
| | | | | | | | | | | | This is no longer used since 79a5ea9eadb4d43b62afacedc0706cbe88c54496.
* | | Unused variablesAkira Matsuda2017-09-011-2/+2
| | |
* | | Clarify intentions around method redefinitionsMatthew Draper2017-09-013-3/+5
|/ / | | | | | | | | | | | | | | | | Don't use remove_method or remove_possible_method just before a new definition: at best the purpose is unclear, and at worst it creates a race condition. Instead, prefer redefine_method when practical, and silence_redefinition_of_method otherwise.
* | Merge pull request #30433 from ↵Ryuta Kamizono2017-08-292-7/+45
|\ \ | | | | | | | | | | | | y-yagi/fix_cant_modify_forzen_string_error_in_debug_locks Fix `can't modify frozen String` error in `DebugLocks`
| * | Fix `warning: shadowing outer local variable`yuuji.yaginuma2017-08-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | This fixes following warnings: ``` actionpack/lib/action_dispatch/middleware/debug_locks.rb:46: warning: shadowing outer local variable - threads ```
| * | Fix `can't modify frozen String` error in `DebugLocks`yuuji.yaginuma2017-08-282-4/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this, `DebugLocks` middleware raises an error as follwing: ``` Puma caught this error: can't modify frozen String (RuntimeError) actionpack/lib/action_dispatch/middleware/debug_locks.rb:97:in `block in render_details' actionpack/lib/action_dispatch/middleware/debug_locks.rb:64:in `each' actionpack/lib/action_dispatch/middleware/debug_locks.rb:64:in `map' actionpack/lib/action_dispatch/middleware/debug_locks.rb:64:in `render_details' actionpack/lib/action_dispatch/middleware/debug_locks.rb:37:in `call' railties/lib/rails/engine.rb:524:in `call' ```
* | | Merge pull request #30421 from y-yagi/fix_30405Eileen M. Uchitelle2017-08-273-13/+39
|\ \ \ | | | | | | | | Retrive screenshot in relative path of current directory
| * | | Retrive screenshot in relative path of current directoryyuuji.yaginuma2017-08-273-13/+39
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | In Rails engine `Rails.root `returns the path of the dummy application. Therefore, there is no `tmp` directly where the test is running, so can not get the screenshot. For this reason, instead of directly specifying tmp, retrive screenshot by relative path from the current directory. Fixes #30405
* | | Merge branch 'master' of github.com:rails/docrailsVijay Dev2017-08-261-1/+1
|\ \ \ | |/ / |/| |
| * | [ci skip] Fix a typoyui-knk2017-08-181-1/+1
| | | | | | | | | | | | We always plural form for `resources` method.
* | | Merge pull request #30418 from yhirano55/use_tt_in_doc_for_actionpackRyuta Kamizono2017-08-268-17/+17
|\ \ \ | | | | | | | | Use tt in doc for action_pack [ci skip]
| * | | Use tt in doc for ActionPack [ci skip]Yoshiyuki Hirano2017-08-268-17/+17
| | |/ | |/|
* / | Fix `can't modify frozen String` error in `display_image`yuuji.yaginuma2017-08-262-1/+16
|/ / | | | | | | | | | | | | | | | | | | Without this, `display_image` raises an error as follwing: ``` RuntimeError: can't modify frozen String rails/actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb:72:in `display_image' rails/actionpack/test/dispatch/system_testing/screenshot_helper_test.rb:40:in `block (2 levels) in <class:ScreenshotHelperTest>' ```
* | Update links to use https link instead of http [ci skip]Yoshiyuki Hirano2017-08-229-21/+21
| |
* | Update MIT licenses link [ci skip]Yoshiyuki Hirano2017-08-221-1/+1
| |
* | Merge pull request #30121 from assain/add_expires_in_and_expires_at_to_cookiesKasper Timm Hansen2017-08-203-5/+54
|\ \ | | | | | | Add expiry metadata to Cookies and freshen expires option to support duration
| * | freshen :expires option with duration support and add expiry metadata to cookiesAssain2017-08-203-5/+54
| |/
* | fix typo in ambiguous route definition error messageZoran Pesic2017-08-181-1/+1
| |
* | Use ssl in guide and comment [ci skip]Yoshiyuki Hirano2017-08-191-1/+1
| |
* | Fix RuboCop offensesKoichi ITO2017-08-166-28/+28
| | | | | | | | And enable `context_dependent` of Style/BracesAroundHashParameters cop.
* | Load Parameters configurations on :action_controller only onceAlberto Almagro2017-08-141-1/+1
|/ | | | Fixes regression ActionController::UnpermittedParameters not raised. The inner hook was being executed twice, once when ActionController::Base was loaded and again when ActionController::API was loaded. As options.delete operations inside the block are not idempotent, the second time it was run there was no configuration option available