类 URI::LDAP
常量
公共类方法
build(args) 点击切换源代码
描述¶ ↑
从组件创建新的 URI::LDAP
对象,并进行语法检查。
接受的组件包括主机、端口、dn、属性、范围、过滤器和扩展。
组件应以 Array
或 Hash
的形式提供,其中键由在组件名称前添加冒号形成。
如果使用 Array
,则必须按以下顺序传递组件:[host, port, dn, attributes, scope, filter, extensions]
。
示例
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])
调用超类方法
URI::Generic::build
# File 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
new(*arg) 点击切换源代码
描述¶ ↑
根据 RFC 2396 从通用 URI
组件创建新的 URI::LDAP
对象。不会执行任何特定于 LDAP 的语法检查。
参数按顺序为:scheme
、userinfo
、host
、port
、registry
、path
、opaque
、query
和 fragment
。
示例
uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil, nil, "/dc=example;dc=com", nil, "query", 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() 点击切换源代码
返回属性。
# File lib/uri/ldap.rb, line 178 def attributes @attributes end
attributes=(val) 点击切换源代码
属性 val
的设置器。
# File lib/uri/ldap.rb, line 191 def attributes=(val) set_attributes(val) val end
dn() 点击切换源代码
返回 dn。
# File lib/uri/ldap.rb, line 159 def dn @dn end
dn=(val) 点击切换源代码
dn val
的设置器。
# File lib/uri/ldap.rb, line 172 def dn=(val) set_dn(val) val end
extensions() 点击切换源代码
返回扩展。
# File lib/uri/ldap.rb, line 235 def extensions @extensions end
extensions=(val) 点击切换源代码
扩展 val
的设置器。
# File lib/uri/ldap.rb, line 248 def extensions=(val) set_extensions(val) val end
filter() 点击切换源代码
返回过滤器。
# File lib/uri/ldap.rb, line 216 def filter @filter end
filter=(val) 点击切换源代码
过滤器 val
的设置器。
# File lib/uri/ldap.rb, line 229 def filter=(val) set_filter(val) val end
hierarchical?() 点击切换源代码
scope() 点击切换源代码
返回范围。
# File lib/uri/ldap.rb, line 197 def scope @scope end
scope=(val) 点击切换源代码
范围 val
的设置器。
# File lib/uri/ldap.rb, line 210 def scope=(val) set_scope(val) val end
受保护的实例方法
set_attributes(val) 点击切换源代码
属性 val
的私有设置器。
# File lib/uri/ldap.rb, line 183 def set_attributes(val) @attributes = val build_path_query @attributes end
set_dn(val) 点击切换源代码
dn val
的私有设置器。
# File lib/uri/ldap.rb, line 164 def set_dn(val) @dn = val build_path_query @dn end
set_extensions(val) 点击切换源代码
扩展 val
的私有设置器。
# File lib/uri/ldap.rb, line 240 def set_extensions(val) @extensions = val build_path_query @extensions end
set_filter(val) 点击切换源代码
过滤器 val
的私有设置器。
# File lib/uri/ldap.rb, line 221 def set_filter(val) @filter = val build_path_query @filter end
set_scope(val) 点击切换源代码
范围 val
的私有设置器。
# File lib/uri/ldap.rb, line 202 def set_scope(val) @scope = val build_path_query @scope end
私有实例方法
build_path_query() 点击切换源代码
私有方法,用于从 attributes
、scope
、filter
和 extensions
组装 query
。
# File 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
parse_dn() 点击切换源代码
私有方法,用于清理 dn
,使其不再使用 path
组件属性。
# File lib/uri/ldap.rb, line 120 def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @dn = @path[1..-1] end
parse_query() 点击切换源代码
私有方法,用于清理 attributes
、scope
、filter
和 extensions
,使其不再使用 query
组件属性。
# File 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