diff --git a/lib/net/ldap/filter.rb b/lib/net/ldap/filter.rb index 6f064488..94652327 100644 --- a/lib/net/ldap/filter.rb +++ b/lib/net/ldap/filter.rb @@ -755,7 +755,7 @@ def parse_paren_expression(scanner) # This parses a given expression inside of parentheses. def parse_filter_branch(scanner) scanner.scan(/\s*/) - if token = scanner.scan(/[-\w:.]*[\w]/) + if token = scanner.scan(/[-\w:.;]*[\w]/) scanner.scan(/\s*/) if op = scanner.scan(/<=|>=|!=|:=|=/) scanner.scan(/\s*/) diff --git a/test/test_filter_parser.rb b/test/test_filter_parser.rb index 6f1ca48b..82fb27d3 100644 --- a/test/test_filter_parser.rb +++ b/test/test_filter_parser.rb @@ -21,4 +21,8 @@ def test_slash def test_colons assert_kind_of Net::LDAP::Filter, Net::LDAP::Filter::FilterParser.parse("(ismemberof=cn=edu:berkeley:app:calmessages:deans,ou=campus groups,dc=berkeley,dc=edu)") end + + def test_attr_tag + assert_kind_of Net::LDAP::Filter, Net::LDAP::Filter::FilterParser.parse("(mail;primary=jane@example.org)") + end end