プロが教える店舗&オフィスのセキュリティ対策術

Rubyでldapを利用したいと思っているのですがうまくいかず悩んでいます。
下記よりruby-ldap.x.x.x.tar.gz をダウンロードしました。
※最新のバージョン以外も試しています。
<http://ruby-ldap.sourceforge.net/>


#!/usr/bin/ruby
require "ldap"  ←/usr/lib/ruby/1.8/netldap.rb を指定
LDAP::Conn.new($ホスト、$ポート)

と実行すると接続時に下のエラー内容が出ます。
"uninitialized constant LDAP (NameError)"

書籍、WEBを参考にしてスクリプトを組んだのですが、どこが問題なのかトレースできません。
もしお分かりの方がおりましたらお教えください。

A 回答 (2件)

(正)←/usr/lib/ruby/1.8/net/ldap.rb を指定



これは、質問にある ruby-ldapじゃなくて、Net::LDAPのファイルじゃないですか?

RubyForge: Pure Ruby LDAP Tools: Project Info
http://rubyforge.org/projects/net-ldap/

であるなら名前空間が違うので LDAPでは何も見つからないはずです。
require 'ldap' でエラーになってないというのもわかりませんが、
Net::LDAPを使うのなら

require 'net/ldap'

ldap = Net::LDAP.new :host => server_ip_address,
:port => 389,
:auth => {
:method => :simple,
:username => "cn=manager,dc=example,dc=com",
:password => "opensesame"
}

filter = Net::LDAP::Filter.eq( "cn", "George*" )
treebase = "dc=example,dc=com"

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

p ldap.get_operation_result

こういう感じになるのですが。

ldap.so はどのディレクトリにあって、そもそもインストールは
どういう手順でやったのでしょうか?
    • good
    • 0
この回答へのお礼

ご丁寧な解答ありがとうございました。

/usr/lib/ruby/1.8/配下に、ldap.rb というファイルを作成していたことがあり、こちらを読んでいました。

require 'net/ldap'
として、ご指摘のようにスクリプトを組みなおしたところ正常にどうさいたしました。

お礼日時:2008/03/20 01:02

>require "ldap"  ←/usr/lib/ruby/1.8/netldap.rb を指定


ここの意味がわからないのですがどういうことですか?
ldap.so というのがインストール時に作られていて、それを読み込むと思うのですが。
netldap.rb ってどこから出てきたファイルなのかもわかりません。


>もしお分かりの方がおりましたらお教えください。
「おりましたら」というのを丁寧に言っている意味で書いているのなら間違いです。
自分、もしくは自分の身内を下げて言うときに使う表現ですよ。

この回答への補足

(誤)←/usr/lib/ruby/1.8/netldap.rb を指定
(正)←/usr/lib/ruby/1.8/net/ldap.rb を指定
でした。

ldap.soファイルは存在しています。

補足日時:2008/03/19 21:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!