summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2017-09-20 11:49:04 -0700
committerMichael Kozono <mkozono@gmail.com>2017-10-07 10:28:12 -0700
commita0d7a22e7c1e8ae1a61b4ef24ef38180c68782c7 (patch)
treeef208a7018a15188d19edfac8bf3a35d7af9c0db
parent91f2492a786bbe697b1f68e7b15090700a4c08a2 (diff)
downloadgitlab-ce-a0d7a22e7c1e8ae1a61b4ef24ef38180c68782c7.tar.gz
Always downcase DNs
-rw-r--r--lib/gitlab/ldap/dn.rb22
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"