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).
Constant Summary
-
COMPONENT =
An Array of the available components for
LDAP
.[ :scheme, :host, :port, :dn, :attributes, :scope, :filter, :extensions, ].freeze
-
DEFAULT_PORT =
A Default port of 389 for
LDAP
.389
-
SCOPE =
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 - subtrees, all entries at all levels
[ SCOPE_ONE = 'one', SCOPE_SUB = 'sub', SCOPE_BASE = 'base', ].freeze
-
::URI
- Included
DEFAULT_PARSER, Parser, REGEXP, RFC3986_PARSER, TBLDECWWWCOMP_, TBLENCWWWCOMP_, VERSION, VERSION_CODE, WEB_ENCODINGS_
Generic
- Inherited
Class Method Summary
-
.build(args)
Description.
-
.new(*arg) ⇒ LDAP
constructor
Description.
Generic
- Inherited
.build | Synopsis. |
.build2 | Synopsis. |
.component | Components of the |
.default_port | Returns default port. |
.new | Args. |
.use_proxy?, .use_registry |
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
. -
#hierarchical? ⇒ Boolean
readonly
Checks if
::URI
has a path. -
#scope
rw
Returns scope.
-
#scope=(val)
rw
Setter for scope
val
.
Generic
- Inherited
#absolute | Alias for Generic#absolute?. |
#fragment | Returns the fragment component of the |
#fragment= | Checks the fragment |
#hierarchical? | Returns true if |
#host | Returns the host component of the |
#host= | Args. |
#hostname | Extract the host part of the |
#hostname= | Sets the host part of the |
#opaque | Returns the opaque part of the |
#opaque= | Args. |
#password | Returns the password component. |
#password= | Args. |
#path | Returns the path component of the |
#path= | Args. |
#port | Returns the port component of the |
#port= | Args. |
#query | Returns the query component of the |
#query= | Args. |
#registry=, | |
#relative? | Returns true if |
#scheme | Returns the scheme component of the |
#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’. |
#registry |
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 two URIs. |
#absolute? | Returns true if |
#coerce | Args. |
#component | Components of the |
#default_port | Returns default port. |
#eql?, | |
#find_proxy | Returns a proxy |
#hash, #inspect, | |
#merge | Args. |
#merge! | Args. |
#normalize | Returns normalized |
#normalize! | Destructive version of |
#parser | Returns the parser to be used. |
#route_from | Args. |
#route_to | Args. |
#select | Args. |
#to_s | Constructs String from |
#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 | Protected setter for the |
#check_host | Checks the host |
#check_opaque | Checks the opaque |
#check_password | Checks the password |
#check_path | Checks the path |
#check_port | Checks the port |
#check_scheme | Checks the scheme |
#check_user | Checks the user |
#check_userinfo | Checks the |
#escape_userpass | Escapes ‘user:password’ |
#merge_path | Merges a base path |
#replace! | Replaces self by other |
#route_from0, | |
#split_path | Returns an Array of the path split on ‘/’. |
#split_userinfo | Returns the userinfo |
#set_registry, #check_registry, #route_from_path |
Constructor Details
.new(*arg) ⇒ LDAP
Description
Creates 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, nil,
"/dc=example;dc=com", nil, "query", nil)
See also 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
Class Method Details
.build(args)
Description
Creates 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:
uri = URI::LDAP.build({:host => 'ldap.example.com',
:dn => '/dc=example'})
uri = URI::LDAP.build(["ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil])
# File 'lib/uri/ldap.rb', line 75
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 179
def attributes @attributes end
#attributes=(val) (rw)
Setter for attributes val
.
# File 'lib/uri/ldap.rb', line 192
def attributes=(val) set_attributes(val) val end
#dn (rw)
Returns dn.
# File 'lib/uri/ldap.rb', line 160
def dn @dn end
#dn=(val) (rw)
Setter for dn val
.
# File 'lib/uri/ldap.rb', line 173
def dn=(val) set_dn(val) val end
#extensions (rw)
Returns extensions.
# File 'lib/uri/ldap.rb', line 236
def extensions @extensions end
#extensions=(val) (rw)
Setter for extensions val
.
# File 'lib/uri/ldap.rb', line 249
def extensions=(val) set_extensions(val) val end
#filter (rw)
Returns filter.
# File 'lib/uri/ldap.rb', line 217
def filter @filter end
#filter=(val) (rw)
Setter for filter val
.
# File 'lib/uri/ldap.rb', line 230
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 256
def hierarchical? false end
#scope (rw)
Returns scope.
# File 'lib/uri/ldap.rb', line 198
def scope @scope end
#scope=(val) (rw)
Setter for scope val
.
# File 'lib/uri/ldap.rb', line 211
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 147
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 121
def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @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 129
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 184
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 165
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 241
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 222
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 203
def set_scope(val) @scope = val build_path_query @scope end