class URI::LDAP
LDAP URI SCHEMA
(described in RFC2255)
An Array of the available components for URI::LDAP A Default port of 389 for URI::LDAP Scopes available for the starting point. SCOPE_BASE - the Base DN SCOPE_ONE - one level under the Base DN, not including the base DN and SCOPE_SUB - subtress, all entries at all levels Create a new URI::LDAP object from components, with
syntax checking. The components accepted are host, port, dn, attributes, scope, filter, and
extensions. The components should be provided either as an Array, or as a Hash with keys formed by preceding the component
names with a colon. If an Array is used, the components must be passed in the order [host,
port, dn, attributes, scope, filter, extensions]. Example: Create a new URI::LDAP object from generic URI components as per RFC 2396. No LDAP-specific
syntax checking is performed. Arguments are Example: See also URI::Generic.new returns attributes. setter for attributes returns dn. setter for dn returns extensions. setter for extensions returns filter. setter for filter returns scope. setter for scope private setter for attributes private setter for dn private setter for extensions private setter for filter private setter for scope private method to assemble private method to cleanup private method to cleanup Constants
not including any entries under this.
Public Class Methods
Description¶ ↑
newuri = URI::LDAP.build({:host => 'ldap.example.com',
:dn> => '/dc=example'})
newuri = URI::LDAP.build(["ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil])
# File lib/uri/ldap.rb, line 73
def self.build(args)
tmp = Util::make_components_hash(self, args)
if tmp[:dn]
tmp[:path] = tmp[:dn]
end
query = []
[:extensions, :filter, :scope, :attributes].collect do |x|
next if !tmp[x] && query.size == 0
query.unshift(tmp[x])
end
tmp[:query] = query.join('?')
return super(tmp)
end
Description¶ ↑
scheme
, userinfo
,
host
, port
, registry
,
path
, opaque
, query
and
fragment
, in that order.uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil, nil)
# File lib/uri/ldap.rb, line 108
def initialize(*arg)
super(*arg)
if @fragment
raise InvalidURIError, 'bad LDAP URL'
end
parse_dn
parse_query
end
Public Instance Methods
# File lib/uri/ldap.rb, line 177
def attributes
@attributes
end
val
# File lib/uri/ldap.rb, line 190
def attributes=(val)
set_attributes(val)
val
end
# File lib/uri/ldap.rb, line 158
def dn
@dn
end
val
# File lib/uri/ldap.rb, line 171
def dn=(val)
set_dn(val)
val
end
# File lib/uri/ldap.rb, line 234
def extensions
@extensions
end
val
# File lib/uri/ldap.rb, line 247
def extensions=(val)
set_extensions(val)
val
end
# File lib/uri/ldap.rb, line 215
def filter
@filter
end
val
# File lib/uri/ldap.rb, line 228
def filter=(val)
set_filter(val)
val
end
# File lib/uri/ldap.rb, line 196
def scope
@scope
end
val
# File lib/uri/ldap.rb, line 209
def scope=(val)
set_scope(val)
val
end
Protected Instance Methods
val
# File lib/uri/ldap.rb, line 182
def set_attributes(val)
@attributes = val
build_path_query
@attributes
end
val
# File lib/uri/ldap.rb, line 163
def set_dn(val)
@dn = val
build_path_query
@dn
end
val
# File lib/uri/ldap.rb, line 239
def set_extensions(val)
@extensions = val
build_path_query
@extensions
end
val
# File lib/uri/ldap.rb, line 220
def set_filter(val)
@filter = val
build_path_query
@filter
end
val
# File lib/uri/ldap.rb, line 201
def set_scope(val)
@scope = val
build_path_query
@scope
end
Private Instance Methods
query
from attributes
,
scope
, filter
and extensions
.# File lib/uri/ldap.rb, line 145
def build_path_query
@path = '/' + @dn
query = []
[@extensions, @filter, @scope, @attributes].each do |x|
next if !x && query.size == 0
query.unshift(x)
end
@query = query.join('?')
end
dn
from using the path
component attribute# File lib/uri/ldap.rb, line 120
def parse_dn
@dn = @path[1..-1]
end
attributes
, scope
,
filter
and extensions
, from using the
query
component attribute# File lib/uri/ldap.rb, line 127
def parse_query
@attributes = nil
@scope = nil
@filter = nil
@extensions = nil
if @query
attrs, scope, filter, extensions = @query.split('?')
@attributes = attrs if attrs && attrs.size > 0
@scope = scope if scope && scope.size > 0
@filter = filter if filter && filter.size > 0
@extensions = extensions if extensions && extensions.size > 0
end
end