Remove deprecated behavior on Request#content_type
This commit is contained in:
parent
eedd913421
commit
689b277733
@ -1,3 +1,11 @@
|
||||
* Deprecate `config.action_dispatch.return_only_request_media_type_on_content_type`.
|
||||
|
||||
*Rafael Mendonça França*
|
||||
|
||||
* Remove deprecated behavior on `Request#content_type`.
|
||||
|
||||
*Rafael Mendonça França*
|
||||
|
||||
* Change `ActionController::Instrumentation` to pass `filtered_path` instead of `fullpath` in the event payload to filter sensitive query params
|
||||
|
||||
```ruby
|
||||
|
@ -16,7 +16,20 @@ class InvalidType < ::Mime::Type::InvalidMimeType; end
|
||||
|
||||
included do
|
||||
mattr_accessor :ignore_accept_header, default: false
|
||||
cattr_accessor :return_only_media_type_on_content_type, default: false
|
||||
|
||||
def return_only_media_type_on_content_type=(value)
|
||||
ActionDispatch.deprecator.warn(
|
||||
"`config.action_dispatch.return_only_request_media_type_on_content_type` is deprecated and will" \
|
||||
" be removed in Rails 7.2."
|
||||
)
|
||||
end
|
||||
|
||||
def return_only_media_type_on_content_type
|
||||
ActionDispatch.deprecator.warn(
|
||||
"`config.action_dispatch.return_only_request_media_type_on_content_type` is deprecated and will" \
|
||||
" be removed in Rails 7.2."
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
# The MIME type of the HTTP request, such as Mime[:xml].
|
||||
@ -33,19 +46,6 @@ def content_mime_type
|
||||
end
|
||||
end
|
||||
|
||||
def content_type
|
||||
if self.class.return_only_media_type_on_content_type
|
||||
ActionDispatch.deprecator.warn(
|
||||
"Rails 7.1 will return Content-Type header without modification." \
|
||||
" If you want just the MIME type, please use `#media_type` instead."
|
||||
)
|
||||
|
||||
content_mime_type&.to_s
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
def has_content_type? # :nodoc:
|
||||
get_header "CONTENT_TYPE"
|
||||
end
|
||||
|
@ -25,7 +25,6 @@ class Railtie < Rails::Railtie # :nodoc:
|
||||
config.action_dispatch.use_cookies_with_metadata = false
|
||||
config.action_dispatch.perform_deep_munge = true
|
||||
config.action_dispatch.request_id_header = "X-Request-Id"
|
||||
config.action_dispatch.return_only_request_media_type_on_content_type = true
|
||||
config.action_dispatch.log_rescued_responses = true
|
||||
|
||||
config.action_dispatch.default_headers = {
|
||||
@ -51,7 +50,9 @@ class Railtie < Rails::Railtie # :nodoc:
|
||||
|
||||
ActiveSupport.on_load(:action_dispatch_request) do
|
||||
self.ignore_accept_header = app.config.action_dispatch.ignore_accept_header
|
||||
self.return_only_media_type_on_content_type = app.config.action_dispatch.return_only_request_media_type_on_content_type
|
||||
unless app.config.action_dispatch.respond_to?(:return_only_request_media_type_on_content_type)
|
||||
self.return_only_media_type_on_content_type = app.config.action_dispatch.return_only_request_media_type_on_content_type
|
||||
end
|
||||
ActionDispatch::Request::Utils.perform_deep_munge = app.config.action_dispatch.perform_deep_munge
|
||||
end
|
||||
|
||||
|
@ -1041,27 +1041,6 @@ class RequestMimeType < BaseRequestTest
|
||||
assert_equal("application/xml; charset=UTF-8", request.content_type)
|
||||
end
|
||||
|
||||
test "content type with the old behavior" do
|
||||
original = ActionDispatch::Request.return_only_media_type_on_content_type
|
||||
ActionDispatch::Request.return_only_media_type_on_content_type = true
|
||||
|
||||
request = stub_request("CONTENT_TYPE" => "application/xml; charset=UTF-8")
|
||||
|
||||
assert_equal(Mime[:xml], request.content_mime_type)
|
||||
assert_equal("application/xml", request.media_type)
|
||||
assert_deprecated(ActionDispatch.deprecator) do
|
||||
assert_nil(request.content_charset)
|
||||
end
|
||||
assert_deprecated(ActionDispatch.deprecator) do
|
||||
assert_equal({}, request.media_type_params)
|
||||
end
|
||||
assert_deprecated(ActionDispatch.deprecator) do
|
||||
assert_equal("application/xml", request.content_type)
|
||||
end
|
||||
ensure
|
||||
ActionDispatch::Request.return_only_media_type_on_content_type = original
|
||||
end
|
||||
|
||||
test "user agent" do
|
||||
assert_equal "TestAgent", stub_request("HTTP_USER_AGENT" => "TestAgent").user_agent
|
||||
end
|
||||
|
@ -50,8 +50,12 @@ Please refer to the [Changelog][action-pack] for detailed changes.
|
||||
|
||||
### Removals
|
||||
|
||||
* Remove deprecated behavior on `Request#content_type`
|
||||
|
||||
### Deprecations
|
||||
|
||||
* Deprecate `config.action_dispatch.return_only_request_media_type_on_content_type`.
|
||||
|
||||
* Deprecate `AbstractController::Helpers::MissingHelperError`
|
||||
|
||||
* Deprecate `ActionDispatch::IllegalStateError`.
|
||||
|
@ -86,7 +86,6 @@ Below are the default values associated with each target version. In cases of co
|
||||
- [`config.action_controller.wrap_parameters_by_default`](#config-action-controller-wrap-parameters-by-default): `true`
|
||||
- [`config.action_dispatch.cookies_serializer`](#config-action-dispatch-cookies-serializer): `:json`
|
||||
- [`config.action_dispatch.default_headers`](#config-action-dispatch-default-headers): `{ "X-Frame-Options" => "SAMEORIGIN", "X-XSS-Protection" => "0", "X-Content-Type-Options" => "nosniff", "X-Download-Options" => "noopen", "X-Permitted-Cross-Domain-Policies" => "none", "Referrer-Policy" => "strict-origin-when-cross-origin" }`
|
||||
- [`config.action_dispatch.return_only_request_media_type_on_content_type`](#config-action-dispatch-return-only-request-media-type-on-content-type): `false`
|
||||
- [`config.action_mailer.smtp_timeout`](#config-action-mailer-smtp-timeout): `5`
|
||||
- [`config.action_view.apply_stylesheet_media_default`](#config-action-view-apply-stylesheet-media-default): `false`
|
||||
- [`config.action_view.button_to_generates_button_tag`](#config-action-view-button-to-generates-button-tag): `true`
|
||||
@ -1776,18 +1775,6 @@ config.action_dispatch.rescue_responses = {
|
||||
|
||||
Any exceptions that are not configured will be mapped to 500 Internal Server Error.
|
||||
|
||||
#### `config.action_dispatch.return_only_request_media_type_on_content_type`
|
||||
|
||||
Change the return value of `ActionDispatch::Request#content_type` to the
|
||||
Content-Type header without modification.
|
||||
|
||||
The default value depends on the `config.load_defaults` target version:
|
||||
|
||||
| Starting with version | The default value is |
|
||||
| --------------------- | -------------------- |
|
||||
| (original) | `true` |
|
||||
| 7.0 | `false` |
|
||||
|
||||
#### `config.action_dispatch.cookies_same_site_protection`
|
||||
|
||||
Configures the default value of the `SameSite` attribute when setting cookies.
|
||||
|
@ -226,7 +226,6 @@ def load_defaults(target_version)
|
||||
"X-Permitted-Cross-Domain-Policies" => "none",
|
||||
"Referrer-Policy" => "strict-origin-when-cross-origin"
|
||||
}
|
||||
action_dispatch.return_only_request_media_type_on_content_type = false
|
||||
action_dispatch.cookies_serializer = :json
|
||||
end
|
||||
|
||||
|
@ -3847,33 +3847,6 @@ class Post < ActiveRecord::Base
|
||||
assert_equal false, Rails.application.config.assets.unknown_asset_fallback
|
||||
end
|
||||
|
||||
test "ActionDispatch::Request.return_only_media_type_on_content_type is false by default" do
|
||||
app "development"
|
||||
|
||||
assert_equal false, ActionDispatch::Request.return_only_media_type_on_content_type
|
||||
end
|
||||
|
||||
test "ActionDispatch::Request.return_only_media_type_on_content_type is true in the 6.1 defaults" do
|
||||
remove_from_config '.*config\.load_defaults.*\n'
|
||||
add_to_config 'config.load_defaults "6.1"'
|
||||
|
||||
app "development"
|
||||
|
||||
assert_equal true, ActionDispatch::Request.return_only_media_type_on_content_type
|
||||
end
|
||||
|
||||
test "ActionDispatch::Request.return_only_media_type_on_content_type can be configured in the new framework defaults" do
|
||||
remove_from_config '.*config\.load_defaults.*\n'
|
||||
|
||||
app_file "config/initializers/new_framework_defaults_7_0.rb", <<-RUBY
|
||||
Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type = false
|
||||
RUBY
|
||||
|
||||
app "development"
|
||||
|
||||
assert_equal false, ActionDispatch::Request.return_only_media_type_on_content_type
|
||||
end
|
||||
|
||||
test "action_dispatch.log_rescued_responses is true by default" do
|
||||
app "development"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user