ふと Java でLDAPの実験をしたくなったのだが、一々 OpenLDAP サービスなどを立ち上げて設定するのは面倒くさい。
Javaなのだから、例えばxUnitの最中に、In-Memory の組み込みLDAPサーバを立ち上げて初期化して、そこに接続することができればクールじゃね?
というわけで、Javaに組み込めるIn-MemoryなLDAPサーバ・・・を、「ググっただけ」メモです。
まだ手を動かして実際に組み込んだりJavaから接続したりしてません。後日の宿題です。
結論として、2017年1月時点で使えそうなOSSなJavaのLDAP製品としては ApacheDS と UnboundID LDAP SDK がある、ただしどちらも最新stableバージョンを使ったときのIn-Memory組み込み方法がドキュメント不足で詳細不明。
もうちょっと突っ込んで調べればわかりそうだけど、それは後日、実際に触るときがきたらの宿題で残しておきます。
ググって見つかったOSSなJavaのLDAP製品:
-
Welcome to Apache Directory — Apache Directory
- http://directory.apache.org/
- Apache プロジェクトで、LDAPサーバ・クライアント・APIなどの関連OSSプロジェクトをまとめている。
- このうち、ApacheDS がJavaコードにIn-Memoryでembedすることも可能なLDAPサーバ。(もちろんstandaloneで起動することもできる)
- ライセンス : Apache License 2.0
- 組み込むためのドキュメントは以下らしいが、"TODO..."になってて空っぽ・・・。(´・ω・`)
- http://directory.apache.org/apacheds/advanced-ug/7-embedding-apacheds.html
-
UnboundID LDAP SDK for Java
- https://www.ldap.com/unboundid-ldap-sdk-for-java
- JavaのLDAPサーバ/クライアント SDK
- ライセンス : GPLv2 / LGPLv2.1 / 独自の "the UnboundID Free Use License"
- 多機能なため、必要な機能だけに絞って利用できるよう、Standard/Minimal/Commercial と3種類のエディションに分かれている。
- In-Memoryで組み込むためのドキュメント -> https://docs.ldap.com/ldap-sdk/docs/in-memory-directory-server.html
-
— Project Kenai
- https://opends.java.net/
- java.net で開発されていたOSSの Directory Service.
- ライセンス : Common Development and Distribution License (CDDL)
- ここ数年、ほとんど活動してないみたい。
Stack Overflow からの参考:
- java - Running Apache DS embedded in my application - Stack Overflow
- web applications - What is a good embeddable Java LDAP server? - Stack Overflow
- Embedded/memory LDAP server solution - Stack Overflow
その他参考:
-
LDAP: In-Memory Directory Server using UnboundID LDAP SDK | Diaries, Triumphs, Failures, and Rants
- https://ff1959.wordpress.com/2011/11/01/ldap-in-memory-directory-server-using-unboundid-ldap-sdk/
- UnboundIDのLDAP SDKでLDAPサーバを組み込みで使ってみた記事。
- 肝心の Java コードが google code にあったらしく、今はロストしてる。(´・ω・`)
-
29. LDAP Authentication
- http://docs.spring.io/spring-security/site/docs/4.2.1.RELEASE/reference/html/ldap.html#using-an-embedded-test-server
- Spring Security では、LDAP認証のテスト機能として Apache DS のIn-Memory機能をサポートしている。
- 今使うとなれば、ココらへんのコードを読み解いてみるしかないんだろーなー・・・。