class URI::LDAP
An Array of the available components for A Default port of 389 for 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 The components accepted are host, port, dn, attributes, scope, filter, and extensions. The components should be provided either as an Array, or as a If an Array is used, the components must be passed in the order [host, port, dn, attributes, scope, filter, extensions]. Example: Create a new Arguments are Example: See also 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 LDAP
URI
SCHEMA (described in RFC2255)
Constants
URI::LDAP
URI::LDAP
not including any entries under this.
Public Class Methods
Description¶ ↑
URI::LDAP
object from components, with syntax checking.Hash
with keys formed by preceding the component names with a colon.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])
URI::Generic::build
# File lib/uri/ldap.rb, line 74
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¶ ↑
URI::LDAP
object from generic URI
components as per RFC 2396. No LDAP-specific syntax checking is performed.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)
URI::Generic.new
URI::Generic::new
# File lib/uri/ldap.rb, line 109
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 178
def attributes
@attributes
end
val
# File lib/uri/ldap.rb, line 191
def attributes=(val)
set_attributes(val)
val
end
# File lib/uri/ldap.rb, line 159
def dn
@dn
end
val
# File lib/uri/ldap.rb, line 172
def dn=(val)
set_dn(val)
val
end
# File lib/uri/ldap.rb, line 235
def extensions
@extensions
end
val
# File lib/uri/ldap.rb, line 248
def extensions=(val)
set_extensions(val)
val
end
# File lib/uri/ldap.rb, line 216
def filter
@filter
end
val
# File lib/uri/ldap.rb, line 229
def filter=(val)
set_filter(val)
val
end
# File lib/uri/ldap.rb, line 197
def scope
@scope
end
val
# File lib/uri/ldap.rb, line 210
def scope=(val)
set_scope(val)
val
end
Protected Instance Methods
val
# File lib/uri/ldap.rb, line 183
def set_attributes(val)
@attributes = val
build_path_query
@attributes
end
val
# File lib/uri/ldap.rb, line 164
def set_dn(val)
@dn = val
build_path_query
@dn
end
val
# File lib/uri/ldap.rb, line 240
def set_extensions(val)
@extensions = val
build_path_query
@extensions
end
val
# File lib/uri/ldap.rb, line 221
def set_filter(val)
@filter = val
build_path_query
@filter
end
val
# File lib/uri/ldap.rb, line 202
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 146
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 121
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 128
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