top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
Apache HTTP Server 2.2.6 および 2.0.61 の LDAP不具合を修正するためのパッチおよび作成方法をメモしておきます。
2008.01.17作成 この日記は 2008.01.17に作成したものです。
Apache HTTP Server 2.2.6 および 2.0.61 の LDAP不具合を修正するためのパッチおよび作成方法をメモしておきます。
このパッチが無いとLDAPと連携動作させることができないことを確認した環境は以下の通りです。(ただし内容がら 他の環境でも同様の問題が発生するものと考えています)
Webサーバ
Apache HTTP Server 2.2.6 + mod_ldap.so
OS
Microsoft Windows 2003
Microsoft Windows XP SP2
LDAP サーバ
ApacheDS 1.5.1
ApacheDS 1.0.2
OpenLDAP 2.2.29
モジュール・ダウンロード
環境
対象とした Apache : httpd-2.2.6-win32-src-r2.zip
利用したコンパイラ: Microsoft VisualStudio 2005
解凍およびリネーム
httpd-2.2.6-win32-src-r2.zip を解凍
ファイル名変更 (人力 configure)
httpd-2.2.6\srclib\apr\include
httpd-2.2.6\srclib\apr-util\include
VisualStudio 起動
Apache 2.2.6
ディレクトリ: httpd-2.2.6\modules\ldap
プロジェクトファイル名: mod_ldap.dsp
Apache 2.0.61
ディレクトリ: httpd-2.0.61\modules\experimental
プロジェクトファイル名: util_ldap.dsp
VisualStudio 設定
ターゲット: Releaseに切り替え
構成プロパティ
C/C++ → 全般 → 追加のインクルードディレクトリ httpd-2.2.6\os\win32 を追加
リソース → リソースファイル名 リソースファイル名を空欄にする。 ※原因不明なエラー。仕方なく 無理矢理回避。(VS2005, VS2003 いずれにおいても発生、、、)
リンカ → 全般 → 追加のライブラリディレクトリ C:\Program Files\Apache Software Foundation\Apache2.2\lib ※本物の Apache HTTP Server の libディレクトリを指定
リンカ → 入力 → 追加の依存ファイル
実際のパッチ作業
ソースコード変更
対象: util_ldap.c
内容: ※-1 を 0 に変更
#define APR_LDAP_SIZELIMIT 0
感想
私に C++言語スキル (というか VisualStudioスキル) が備わっていて、本当に便利だと思いました。というのも、普段 私は自分に C++スキルがあるということを忘れているのです。というか C++は忘れたいプログラミング言語です… (苦笑)
関係あると考えているリソース
つくば日記 (仮): Win32版 Apache HTTP Server 2.2.x で LDAP 認証できない 「ApacheDS の方のログを見ると,LDAPメッセージのパーズに失敗してるんでエラーなんじゃーって出ている。発生しているエラーは "sizeLimit が真っ当な整数じゃないよ" という内容。」との記載があります。私が遭遇しているのと まさに同じ現象です。
関係がありそうな Bugzilla (バグジラ)
関連する日記
2008/01/11 日記: Apache HTTP Server 2.2.6 (Windows) + ApacheDS 1.5.1 の動作
2008/01/10 日記: Shibuya.trac ミーティング1.0 (2008.01.19@豊洲) , 「第四期 中将棋全国大会・名人戦」に参戦
実際に Active Directoryと接続する際には 更にハマりそうだと考え始めました。私にとっての馴染みの言語 Javaで どのようなコーディングになるのか調べておく必要があるように考えています。