Class: URI::LDAP
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Generic
|
|
Instance Chain:
|
|
Inherits: |
URI::Generic
|
Defined in: | lib/uri/ldap.rb |
Overview
LDAP
URI SCHEMA (described in RFC2255) dn,
:attributes,
:scope,
:filter,
:extensions,
].freeze
A Default port of 389 for LDAP
389
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
not including any entries under this.
-
SCOPE_SUB - subtress, all entries at all levels
[ SCOPE_ONE = 'one', SCOPE_SUB = 'sub', SCOPE_BASE = 'base', ].freeze
::URI - Included
DEFAULT_PARSER, Parser, REGEXP, RFC3986_PARSER
Generic - Inherited
Class Method Summary
-
.build(args)
Description.
-
.new(*arg) ⇒ LDAP
constructor
Description.
Generic - Inherited
.build | Synopsis. |
.build2 | Synopsis. |
.component | Components of the ::URI in the order. |
.default_port | Returns default port. |
.new | Args. |
Instance Attribute Summary
-
#attributes
rw
returns attributes.
-
#attributes=(val)
rw
setter for attributes
val
-
#dn
rw
returns dn.
-
#dn=(val)
rw
setter for dn
val
-
#extensions
rw
returns extensions.
-
#extensions=(val)
rw
setter for extensions
val
-
#filter
rw
returns filter.
-
#filter=(val)
rw
setter for filter
val
-
#scope
rw
returns scope.
-
#scope=(val)
rw
setter for scope
val
-
#hierarchical? ⇒ Boolean
readonly
Checks if ::URI has a path For
LDAP
this will returnfalse
Generic - Inherited
#fragment | returns the fragment component of the ::URI. |
#fragment= | check the fragment |
#host | returns the host component of the ::URI. |
#host= | Args. |
#hostname | extract the host part of the ::URI and unwrap brackets for IPv6 addresses. |
#hostname= | set the host part of the ::URI as the argument with brackets for IPv6 addresses. |
#opaque | returns the opaque part of the ::URI. |
#opaque= | Args. |
#password | returns the password component. |
#password= | Args. |
#path | returns the path component of the ::URI. |
#path= | Args. |
#port | returns the port component of the ::URI. |
#port= | Args. |
#query | returns the query component of the ::URI. |
#query= | Args. |
#registry=, | |
#scheme | returns the scheme component of the ::URI. |
#scheme= | Args. |
#user | returns the user component. |
#user= | Args. |
#userinfo | returns the userinfo, either as 'user' or 'user:password'. |
#userinfo= | Sets userinfo, argument is string like 'name:pass'. |
#absolute | Alias for Generic#absolute?. |
#hierarchical? | Checks if ::URI has a path. |
#relative? | Checks if ::URI is relative. |
Instance Method Summary
-
#set_attributes(val)
protected
private setter for attributes
val
-
#set_dn(val)
protected
private setter for dn
val
-
#set_extensions(val)
protected
private setter for extensions
val
-
#set_filter(val)
protected
private setter for filter
val
-
#set_scope(val)
protected
private setter for scope
val
-
#build_path_query
private
private method to assemble
query
from #attributes, #scope, #filter and #extensions. -
#parse_dn
private
private method to cleanup #dn from using the
path
component attribute. -
#parse_query
private
private method to cleanup #attributes, #scope, #filter and #extensions, from using the
query
component attribute.
Generic - Inherited
#+ | Alias for Generic#merge. |
#- | Alias for Generic#route_from. |
#== | Compares to URI's. |
#absolute? | Checks if ::URI is an absolute one. |
#coerce | Args. |
#component | Components of the ::URI in the order. |
#default_port | Returns default port. |
#eql?, | |
#find_proxy | returns a proxy ::URI. |
#hash, #inspect, | |
#merge | Args. |
#merge! | Args. |
#normalize | Returns normalized ::URI. |
#normalize! | Destructive version of |
#parser | returns the parser to be used. |
#route_from | Args. |
#route_to | Args. |
#select | Args. |
#to_s | Constructs String from ::URI. |
#component_ary | returns an Array of the components defined from the COMPONENT Array. |
#set_host | protected setter for the host component |
#set_opaque | protected setter for the opaque component |
#set_password | protected setter for the password component |
#set_path | protected setter for the path component |
#set_port | protected setter for the port component |
#set_scheme | protected setter for the scheme component |
#set_user | protected setter for the user component |
#set_userinfo | protect setter for the |
#check_host | check the host |
#check_opaque | check the opaque |
#check_password | check the password |
#check_path | check the path |
#check_port | check the port |
#check_scheme | check the scheme |
#check_user | check the user |
#check_userinfo | check the |
#escape_userpass | escapes 'user:password' |
#merge0 | return base and rel. |
#merge_path | Merges a base path |
#replace! | replace self by other ::URI object. |
#route_from0, | |
#split_path | returns an Array of the path split on '/'. |
#split_userinfo | returns the userinfo |
Constructor Details
.new(*arg) ⇒ LDAP
Description
Create a new LDAP
object from generic ::URI components as per RFC 2396. No LDAP-specific syntax checking is performed.
Arguments are scheme
, userinfo
, host
, port
, registry
, path
, opaque
, query
and fragment
, in that order.
Example:
uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil, nil)
See also Generic.new
# 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
Class Method Details
.build(args)
Description
Create a new 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:
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
Instance Attribute Details
#attributes (rw)
returns attributes.
# File 'lib/uri/ldap.rb', line 177
def attributes @attributes end
#attributes=(val) (rw)
setter for attributes val
# File 'lib/uri/ldap.rb', line 190
def attributes=(val) set_attributes(val) val end
#dn (rw)
returns dn.
# File 'lib/uri/ldap.rb', line 158
def dn @dn end
#dn=(val) (rw)
setter for dn val
# File 'lib/uri/ldap.rb', line 171
def dn=(val) set_dn(val) val end
#extensions (rw)
returns extensions.
# File 'lib/uri/ldap.rb', line 234
def extensions @extensions end
#extensions=(val) (rw)
setter for extensions val
# File 'lib/uri/ldap.rb', line 247
def extensions=(val) set_extensions(val) val end
#filter (rw)
returns filter.
# File 'lib/uri/ldap.rb', line 215
def filter @filter end
#filter=(val) (rw)
setter for filter val
# File 'lib/uri/ldap.rb', line 228
def filter=(val) set_filter(val) val end
#hierarchical? ⇒ Boolean
(readonly)
Checks if ::URI has a path For LDAP
this will return false
# File 'lib/uri/ldap.rb', line 254
def hierarchical? false end
#scope (rw)
returns scope.
# File 'lib/uri/ldap.rb', line 196
def scope @scope end
#scope=(val) (rw)
setter for scope val
# File 'lib/uri/ldap.rb', line 209
def scope=(val) set_scope(val) val end
Instance Method Details
#build_path_query (private)
private method to assemble 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
#parse_dn (private)
private method to cleanup #dn from using the path
component attribute
# File 'lib/uri/ldap.rb', line 120
def parse_dn @dn = @path[1..-1] end
#parse_query (private)
private method to cleanup #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
#set_attributes(val) (protected)
private setter for attributes val
# File 'lib/uri/ldap.rb', line 182
def set_attributes(val) @attributes = val build_path_query @attributes end
#set_dn(val) (protected)
private setter for dn val
# File 'lib/uri/ldap.rb', line 163
def set_dn(val) @dn = val build_path_query @dn end
#set_extensions(val) (protected)
private setter for extensions val
# File 'lib/uri/ldap.rb', line 239
def set_extensions(val) @extensions = val build_path_query @extensions end
#set_filter(val) (protected)
private setter for filter val
# File 'lib/uri/ldap.rb', line 220
def set_filter(val) @filter = val build_path_query @filter end
#set_scope(val) (protected)
private setter for scope val
# File 'lib/uri/ldap.rb', line 201
def set_scope(val) @scope = val build_path_query @scope end