Ruby 2.4

URI::LDAP

class URI::LDAP

Parent:URI::Generic

LDAP URI SCHEMA(在RFC2255中描述)

常量

COMPONENT

URI::LDAP的可用组件的数组

DEFAULT_PORT

URI::LDAP的默认端口为389

SCOPE

可用于起点的范围。

  • SCOPE_BASE - the Base DN

  • SCOPE_ONE - 基本DN下的一个级别,不包括基本DN和

不包括此项下的任何条目。

  • SCOPE_SUB - 子级,所有级别的所有条目

公共类别方法

build(args) Show source

描述

从组件创建一个新的URI::LDAP对象,并进行语法检查。

接受的组件是主机,端口,dn,属性,范围,过滤器和扩展。

这些组件应该以数组的形式提供,或者以组件名称前面用冒号形成的哈希形式提供。

如果使用数组,则必须按照host,port,dn,attributes,scope,filter,extensions的顺序传递组件。

示例:

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 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

new(*arg) Show source

描述

按照RFC 2396从通用URI组件创建一个新的URI::LDAP对象。不执行特定于LDAP的语法检查。

参数是schemeuserinfohostportregistrypathopaquequeryfragment按此顺序。

示例:

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 108 def initialize(*arg) super(*arg) if @fragment raise InvalidURIError, 'bad LDAP URL' end parse_dn parse_query end

公共实例方法

attributes() Show source

返回属性。

# File lib/uri/ldap.rb, line 177 def attributes @attributes end

attributes=(val) Show source

setter属性 val

# File lib/uri/ldap.rb, line 190 def attributes=(val) set_attributes(val) val end

dn() Show source

返回dn。

# File lib/uri/ldap.rb, line 158 def dn @dn end

dn=(val) Show source

为dn设置 val

# File lib/uri/ldap.rb, line 171 def dn=(val) set_dn(val) val end

extensions() Show source

返回扩展名。

# File lib/uri/ldap.rb, line 234 def extensions @extensions end

extensions=(val) Show source

setter用于扩展 val

# File lib/uri/ldap.rb, line 247 def extensions=(val) set_extensions(val) val end

filter() Show source

返回过滤器。

# File lib/uri/ldap.rb, line 215 def filter @filter end

filter=(val) Show source

设置为过滤器 val

# File lib/uri/ldap.rb, line 228 def filter=(val) set_filter(val) val end

hierarchical?() Show source

检查URI是否有路径对于URI::LDAP,这将返回 false

# File lib/uri/ldap.rb, line 254 def hierarchical? false end

scope() Show source

返回范围。

# File lib/uri/ldap.rb, line 196 def scope @scope end

scope=(val) Show source

范围val的setter

# File lib/uri/ldap.rb, line 209 def scope=(val) set_scope(val) val end

受保护的实例方法

set_attributes(val) Show source

私人二传手属性 val

# File lib/uri/ldap.rb, line 182 def set_attributes(val) @attributes = val build_path_query @attributes end

set_dn(val) Show source

dnval私人二传手

# File lib/uri/ldap.rb, line 163 def set_dn(val) @dn = val build_path_query @dn end

set_extensions(val) Show source

私人二传手 val

# File lib/uri/ldap.rb, line 239 def set_extensions(val) @extensions = val build_path_query @extensions end

set_filter(val) Show source

私人二传手过滤器 val

# File lib/uri/ldap.rb, line 220 def set_filter(val) @filter = val build_path_query @filter end

set_scope(val) Show source

范围私人二传手 val

# File lib/uri/ldap.rb, line 201 def set_scope(val) @scope = val build_path_query @scope end

私有实例方法

build_path_query() Show source

私有方法组装queryattributesscopefilterextensions

# 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() Show source

dn使用path组件属性进行清理的私有方法

# File lib/uri/ldap.rb, line 120 def parse_dn @dn = @path[1..-1] end

parse_query() Show source

私有方法清理attributesscopefilterextensions,从使用该query部件属性

# 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