diff options
author | Michael Kozono <mkozono@gmail.com> | 2017-09-20 21:49:04 +0300 |
---|---|---|
committer | Michael Kozono <mkozono@gmail.com> | 2017-10-07 20:28:12 +0300 |
commit | a0d7a22e7c1e8ae1a61b4ef24ef38180c68782c7 (patch) | |
tree | ef208a7018a15188d19edfac8bf3a35d7af9c0db | |
parent | 91f2492a786bbe697b1f68e7b15090700a4c08a2 (diff) |
Always downcase DNs
-rw-r--r-- | lib/gitlab/ldap/dn.rb | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/lib/gitlab/ldap/dn.rb b/lib/gitlab/ldap/dn.rb index 0a49d5e4ca8..555ef0b80ae 100644 --- a/lib/gitlab/ldap/dn.rb +++ b/lib/gitlab/ldap/dn.rb @@ -37,10 +37,12 @@ module Gitlab buffer << "=" if index % 2 == 1 buffer << "," if index % 2 == 0 && index != 0 + arg = args[index].downcase + if index < args.length - 1 || index % 2 == 1 - buffer << self.class.escape(args[index]) + buffer << self.class.escape(arg) else - buffer << args[index] + buffer << arg end end @@ -60,7 +62,7 @@ module Gitlab case state when :key then case char - when 'a'..'z', 'A'..'Z' then + when 'a'..'z' then state = :key_normal key << char when '0'..'9' then @@ -72,7 +74,7 @@ module Gitlab when :key_normal then case char when '=' then state = :value - when 'a'..'z', 'A'..'Z', '0'..'9', '-', ' ' then key << char + when 'a'..'z', '0'..'9', '-', ' ' then key << char else raise "DN badly formed" end when :key_oid then @@ -110,14 +112,14 @@ module Gitlab end when :value_normal_escape then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_normal_escape_hex hex_buffer = char else state = :value_normal; value << char end when :value_normal_escape_hex then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_normal value << "#{hex_buffer}#{char}".to_i(16).chr else raise "DN badly formed" @@ -130,7 +132,7 @@ module Gitlab end when :value_quoted_escape then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_quoted_escape_hex hex_buffer = char else @@ -139,14 +141,14 @@ module Gitlab end when :value_quoted_escape_hex then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_quoted value << "#{hex_buffer}#{char}".to_i(16).chr else raise "DN badly formed" end when :value_hexstring then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_hexstring_hex value << char when ' ' then state = :value_end @@ -159,7 +161,7 @@ module Gitlab end when :value_hexstring_hex then case char - when '0'..'9', 'a'..'f', 'A'..'F' then + when '0'..'9', 'a'..'f' then state = :value_hexstring value << char else raise "DN badly formed" |