OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
ruby
/
2.5.0
/
uri
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:11 AM
rwxr-xr-x
📄
common.rb
19.98 KB
12/12/2017 11:56:25 AM
rw-r--r--
📄
ftp.rb
7.09 KB
08/15/2017 01:05:50 AM
rw-r--r--
📄
generic.rb
35.99 KB
12/14/2017 06:30:22 AM
rw-r--r--
📄
http.rb
2.38 KB
09/11/2017 06:12:40 AM
rw-r--r--
📄
https.rb
611 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📄
ldap.rb
5.77 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
ldaps.rb
501 bytes
12/16/2015 05:07:31 AM
rw-r--r--
📄
mailto.rb
7.87 KB
12/12/2016 03:24:28 PM
rw-r--r--
📄
rfc2396_parser.rb
17.38 KB
12/16/2015 05:07:31 AM
rw-r--r--
📄
rfc3986_parser.rb
6.22 KB
05/15/2023 11:41:43 AM
rw-r--r--
Editing: ldap.rb
Close
# frozen_string_literal: false # = uri/ldap.rb # # Author:: # Takaaki Tateishi <ttate@jaist.ac.jp> # Akira Yamada <akira@ruby-lang.org> # License:: # URI::LDAP is copyrighted free software by Takaaki Tateishi and Akira Yamada. # You can redistribute it and/or modify it under the same term as Ruby. # Revision:: $Id: ldap.rb 53141 2015-12-16 05:07:31Z naruse $ # # See URI for general documentation # require 'uri/generic' module URI # # LDAP URI SCHEMA (described in RFC2255) # ldap://<host>/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]] # class LDAP < Generic # A Default port of 389 for URI::LDAP DEFAULT_PORT = 389 # An Array of the available components for URI::LDAP COMPONENT = [ :scheme, :host, :port, :dn, :attributes, :scope, :filter, :extensions, ].freeze # 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 = [ SCOPE_ONE = 'one', SCOPE_SUB = 'sub', SCOPE_BASE = 'base', ].freeze # # == Description # # 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: # # 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]) # 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 # # Create a new URI::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 URI::Generic.new # def initialize(*arg) super(*arg) if @fragment raise InvalidURIError, 'bad LDAP URL' end parse_dn parse_query end # private method to cleanup +dn+ from using the +path+ component attribute def parse_dn @dn = @path[1..-1] end private :parse_dn # private method to cleanup +attributes+, +scope+, +filter+ and +extensions+, # from using the +query+ component attribute 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 private :parse_query # private method to assemble +query+ from +attributes+, +scope+, +filter+ and +extensions+. 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 private :build_path_query # returns dn. def dn @dn end # private setter for dn +val+ def set_dn(val) @dn = val build_path_query @dn end protected :set_dn # setter for dn +val+ def dn=(val) set_dn(val) val end # returns attributes. def attributes @attributes end # private setter for attributes +val+ def set_attributes(val) @attributes = val build_path_query @attributes end protected :set_attributes # setter for attributes +val+ def attributes=(val) set_attributes(val) val end # returns scope. def scope @scope end # private setter for scope +val+ def set_scope(val) @scope = val build_path_query @scope end protected :set_scope # setter for scope +val+ def scope=(val) set_scope(val) val end # returns filter. def filter @filter end # private setter for filter +val+ def set_filter(val) @filter = val build_path_query @filter end protected :set_filter # setter for filter +val+ def filter=(val) set_filter(val) val end # returns extensions. def extensions @extensions end # private setter for extensions +val+ def set_extensions(val) @extensions = val build_path_query @extensions end protected :set_extensions # setter for extensions +val+ def extensions=(val) set_extensions(val) val end # Checks if URI has a path # For URI::LDAP this will return +false+ def hierarchical? false end end @@schemes['LDAP'] = LDAP end