From bdb003eddd7050c885021fd1f078624607d2b1ca Mon Sep 17 00:00:00 2001 From: Keshav Biswa Date: Sat, 6 Apr 2024 17:16:05 +0530 Subject: [PATCH] Fix: #51254: Update filter_attributes to only add exact match --- activerecord/CHANGELOG.md | 4 ++++ .../lib/active_record/encryption/auto_filtered_parameters.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 75195bbc8adc..78fca2f324e8 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Encrypted attributes will now be filtered by exact matches by FilterParameters. + + *Keshav Biswa* + * Raise an `ActiveRecord::ActiveRecordError` error when the MySQL database returns an invalid version string. *Kevin McPhillips* diff --git a/activerecord/lib/active_record/encryption/auto_filtered_parameters.rb b/activerecord/lib/active_record/encryption/auto_filtered_parameters.rb index 313c8f3ef68d..0081d8781799 100644 --- a/activerecord/lib/active_record/encryption/auto_filtered_parameters.rb +++ b/activerecord/lib/active_record/encryption/auto_filtered_parameters.rb @@ -54,7 +54,7 @@ def apply_filter(klass, attribute) filter = [("#{klass.model_name.element}" if klass.name), attribute.to_s].compact.join(".") unless excluded_from_filter_parameters?(filter) app.config.filter_parameters << filter unless app.config.filter_parameters.include?(filter) - klass.filter_attributes += [ attribute ] + klass.filter_attributes += [ /^#{attribute}$/ ] end end