люди! Я получаю следующее сообщение об ошибке, и я понятия не имею, что делать. Это уже известная ошибка net-ldap? Я пытался обновить свои драгоценные камни, и я уже искал дополнительную информацию в Интернете. Первая часть в порядке, я получаю свои данные из моей базы данных ldap, но эта ошибка возникает в конце.net ldap - Encoding :: UndefinedConversionError
/usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ber/core_ext/string.rb:23:in
encode': "\x8E" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError) from /usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ber/core_ext/string.rb:23:in
raw_utf8_encoded 'от /usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ber/core_ext/string.rb:15:into_ber' from /usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ldap.rb:1396:in
блок в поиске' от /usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ldap.rb:1367:inloop' from /usr/local/lib/ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ldap.rb:1367:in
поиск 'от /usr/local/lib /ruby/gems/1.9.1/gems/net-ldap-0.3.1/lib/net/ldap.rb:637:in `поиск '
и вот мой код:
require 'rubygems'
require 'net/ldap'
ldap = Net::LDAP.new
ldap.host = 'xxxxxx'
ldap.authenticate "cn=admin, dc=xxxx, dc=xxxxx, dc=de", "xxxxx!"
#puts ldap.bind
if ldap.bind
# authentication succeeded
else
# authentication failed
# p ldap.get_operation_result
end
filter = Net::LDAP::Filter.eq("uid", "*")
treebase = "xxxxx, dc=xxxxxx, dc=de"
ldap.search(:base => treebase, :filter => filter) do |entry|
puts "DN: #{entry.dn}"
entry.each do |attribute, values|
puts " #{attribute}:"
values.each do |value|
puts " --->#{value}"
end
end
end
Hi Ken! Большое спасибо! Код из групп google не помог мне, но вы убедили меня использовать ruby-ldap. В первый раз мне не понравился этот модуль, но теперь он работает лучше, чем ожидалось. ... нет ошибки преобразования. Я нашел, что функция исправлена, но я не знаю, как это сделать. Возможно, можно заменить недопустимые части. В чем проблема с вашим соединением? – gadreel
@ user1458773 Рад, что это работает для вас! Моя проблема в том, что я не вижу способа заставить ruby-ldap использовать Simple TLS во время аутентификации. В net-ldap вы можете сделать это: 'Net :: LDAP.new (: host => server,: port => 636,: auth => {: method =>: simple,: username => имя пользователя,: пароль = > password},: encryption =>: simple_tls,) ', но я не вижу, как получить ruby-ldap для использования простой TLS. Параметр LDAP :: Conn.bind «method» по умолчанию имеет значение LDAP :: LDAP_AUTH_SIMPLE, но я не могу найти, что другие параметры. Если вы решили это, дайте мне знать! –