class Gem::URI::LDAP
常量
- COMPONENT
可用于
Gem::URI::LDAP
的可用组件的数组。- DEFAULT_PORT
Gem::URI::LDAP
的默认端口为 389。- SCOPE
起始点的可用范围。
-
SCOPE_BASE - 基本 DN
-
SCOPE_ONE - 基本 DN 下的一级,不包括基本 DN,也不包括此下的任何条目
-
SCOPE_SUB - 子树,所有级别的所有条目
-
公共类方法
描述¶ ↑
从组件创建一个新的 Gem::URI::LDAP
对象,并进行语法检查。
接受的组件有 host、port、dn、attributes、scope、filter 和 extensions。
这些组件应该以数组或哈希的形式提供,哈希的键是在组件名称前面加上冒号。
如果使用数组,则组件必须按照 [host, port, dn, attributes, scope, filter, extensions]
的顺序传递。
示例
uri = Gem::URI::LDAP.build({:host => 'ldap.example.com', :dn => '/dc=example'}) uri = Gem::URI::LDAP.build(["ldap.example.com", nil, "/dc=example;dc=com", "query", nil, nil, nil])
Gem::URI::Generic::build
# File rubygems/vendor/uri/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
描述¶ ↑
根据 RFC 2396,从通用的 Gem::URI
组件创建一个新的 Gem::URI::LDAP
对象。不执行 LDAP 特定的语法检查。
参数的顺序是 scheme
、userinfo
、host
、port
、registry
、path
、opaque
、query
和 fragment
。
示例
uri = Gem::URI::LDAP.new("ldap", nil, "ldap.example.com", nil, nil, "/dc=example;dc=com", nil, "query", nil)
另请参阅 Gem::URI::Generic.new
。
Gem::URI::Generic::new
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 108 def initialize(*arg) super(*arg) if @fragment raise InvalidURIError, 'bad LDAP URL' end parse_dn parse_query end
公共实例方法
返回属性。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 178 def attributes @attributes end
属性 val
的 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 191 def attributes=(val) set_attributes(val) val end
返回 dn。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 159 def dn @dn end
dn val
的 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 172 def dn=(val) set_dn(val) val end
返回扩展。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 235 def extensions @extensions end
扩展 val
的 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 248 def extensions=(val) set_extensions(val) val end
返回过滤器。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 216 def filter @filter end
过滤器 val
的 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 229 def filter=(val) set_filter(val) val end
检查 Gem::URI
是否有路径。对于 Gem::URI::LDAP
,这将返回 false
。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 255 def hierarchical? false end
返回范围。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 197 def scope @scope end
范围 val
的 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 210 def scope=(val) set_scope(val) val end
受保护的实例方法
属性 val
的私有 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 183 def set_attributes(val) @attributes = val build_path_query @attributes end
dn val
的私有 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 164 def set_dn(val) @dn = val build_path_query @dn end
扩展 val
的私有 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 240 def set_extensions(val) @extensions = val build_path_query @extensions end
过滤器 val
的私有 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 221 def set_filter(val) @filter = val build_path_query @filter end
范围 val
的私有 setter。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 202 def set_scope(val) @scope = val build_path_query @scope end
私有实例方法
从 attributes
、scope
、filter
和 extensions
组装 query
的私有方法。
# File rubygems/vendor/uri/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
使用 path
组件属性清理 dn
的私有方法。
# File rubygems/vendor/uri/lib/uri/ldap.rb, line 120 def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @dn = @path[1..-1] end
使用 query
组件属性清理 attributes
、scope
、filter
和 extensions
的私有方法。
# File rubygems/vendor/uri/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