summaryrefslogtreecommitdiff
path: root/app/validators/certificate_fingerprint_validator.rb
diff options
context:
space:
mode:
authorJames Edwards-Jones <jedwardsjones@gitlab.com>2018-03-27 23:24:02 +0100
committerJames Edwards-Jones <jedwardsjones@gitlab.com>2018-04-02 14:39:32 +0100
commit590ddfdcba3d8b88d3351591d307087aaf0d15e0 (patch)
tree449762a748cb0bc2f6d0cfd204bd84bb2f4b8efd /app/validators/certificate_fingerprint_validator.rb
parent055a02edca0a49938542b57bc3652a0da5464f22 (diff)
downloadgitlab-ce-590ddfdcba3d8b88d3351591d307087aaf0d15e0.tar.gz
Adds validators and rack cookie helper
These changes are backported from EE, related to SAML settings in https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4549
Diffstat (limited to 'app/validators/certificate_fingerprint_validator.rb')
-rw-r--r--app/validators/certificate_fingerprint_validator.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/validators/certificate_fingerprint_validator.rb b/app/validators/certificate_fingerprint_validator.rb
new file mode 100644
index 00000000000..17df756183a
--- /dev/null
+++ b/app/validators/certificate_fingerprint_validator.rb
@@ -0,0 +1,9 @@
+class CertificateFingerprintValidator < ActiveModel::EachValidator
+ FINGERPRINT_PATTERN = /\A([a-zA-Z0-9]{2}[\s\-:]?){16,}\z/.freeze
+
+ def validate_each(record, attribute, value)
+ unless value.try(:match, FINGERPRINT_PATTERN)
+ record.errors.add(attribute, "must be a hash containing only letters, numbers, spaces, : and -")
+ end
+ end
+end