add(dn, records)
click to toggle source
def add(dn, records)
attributes = BasicAttributes.new
records.each do |record|
attributes.put(record.to_java_attribute)
end
@context.create_subcontext(dn, attributes)
end
bind_as_anonymous()
click to toggle source
def bind_as_anonymous
setup_context(nil, nil, "none")
bound?
end
bound?()
click to toggle source
def bound?
not @context.nil?
end
delete(dn)
click to toggle source
def delete(dn)
@context.destroy_subcontext(dn)
end
modify(dn, records)
click to toggle source
def modify(dn, records)
items = records.collect(&:to_java_modification_item)
@context.modify_attributes(dn, items.to_java(ModificationItem))
end
modify_rdn(dn, new_rdn, delete_old_rdn)
click to toggle source
def modify_rdn(dn, new_rdn, delete_old_rdn)
delete_rdn_key = "java.naming.ldap.deleteRDN"
@context.add_to_environment(delete_rdn_key, delete_old_rdn.to_s)
@context.rename(dn, new_rdn)
ensure
@context.remove_from_environment(delete_rdn_key)
end
sasl_bind(bind_dn, mechanism, quiet)
click to toggle source
def sasl_bind(bind_dn, mechanism, quiet)
setup_context(bind_dn, password, mechanism)
bound?
end
search(base, scope, filter, attrs, limit) { |name_in_namespace, attributes| ... }
click to toggle source
def search(base, scope, filter, attrs, limit)
controls = SearchControls.new
controls.search_scope = scope
controls.count_limit = limit if limit
unless attrs.blank?
controls.returning_attributes = attrs.to_java(:string)
end
@context.search(base, filter, controls).each do |result|
attributes = {}
result.attributes.get_all.each do |attribute|
attributes[attribute.get_id] = attribute.get_all.collect do |value|
value.is_a?(String) ? value : String.from_java_bytes(value)
end
end
yield([result.name_in_namespace, attributes])
end
end
simple_bind(bind_dn, password)
click to toggle source
def simple_bind(bind_dn, password)
setup_context(bind_dn, password, "simple")
bound?
end
unbind()
click to toggle source
def unbind
@tls.close if @tls
@tls = nil
@context.close if @context
@context = nil
end