2013-01-18 11 views
8

は、Javaで記述されたJDKプロセス(Hadoopのminiclusterや組み込みLDAPサーバなど)内で実行可能な組み込み可能なKerberosサーバ(KDC/KAdmin)を認識していますか?Javaで書かれたテスト用埋め込みKerberosサーバ

ローカルケルベロスサーバをインストールしたり、リモートサーバとリモートサーバを接続したりせずに、Kerberos認証が必要な統合テストを実行できるようにするのが私の目標です。

答えて

4

あなたがApacheのディレクトリサーバー(http://directory.apache.org/に)試してみることができます。 LDAPとKerberosをサポートしています。この例を参照してください:

http://svn.apache.org/repos/asf/directory/apacheds/trunk/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/SaslGssapiBindITest.java

+0

@マイケル - Oこのテストは、埋め込み可能であり、純粋なJavaで実装されているKDCの機能を示しています。 – kayyagari

+0

はい: '@ CreateKdcServer'です。 –

+0

おかげさまで、この仕事に戻る時間がありました。行く方法のようです。期待どおりに動くかどうか、それが予期しない痛みを引き起こしているなら、私はそれを試して報告します。両方のおかげで! – Zorkus

0

私はこのようなことも探していましたが、これには完全に機能するDNSサーバーが必要なので、これは実際には不可能です。完全に分離されたシステムが必要です。これは、virtualization-maven-pluginと内部ネットワークを持つVirtualBoxの仮想マシンのグループによって実現できます。

LDAPサーバは、GSS-APIとKerberosではまったく何もしないので、まったく役に立ちません。 SASLは、次に利用可能なKDCにauthを委任することによってすべてを行います。

KDCとDNSサーバーが必要です。 Samba 4を1台のマシンで試してみてください。もう1台は、 ドメインに参加してください。 Hadoopをインストールし、3番目のクライアント(クライアント)を追加し、そこでテストに参加して実行します。

あなたは、Apache DSはKDCを模倣することができますように思える:http://directory.apache.org/apacheds/configuration/ads-2.0-configuration.html

+0

私はDNSが必要ではないと思っています。私はIPを提供して使用することができますが、私はKDCをJavaアプリケーションとして実装し、テストプロセス内で実行する必要があります。 – Zorkus

+0

いいえ、これは動作しません。おそらくすべてのホストを '/ etc/hots'に置かない限り、ケルベロスはDNSはDNSなしでは動作しません。 –

+0

これはうまくいきます、私はそこに必要なすべてのホストを置くか、すべての通信に常にlocalhostを使用させることができます。 – Zorkus

0

私は同様の目的のために組み込みLDAPを書かれており、また、あなたがテストHadoopのKerberosのテストのようなケースのためにspcially便利な、ケルベロスとのテストのためにそれを使用することができますする必要があります。

https://github.com/krishdey/EmbeddedLdapKDC

またhttps://github.com/krishdey/EmbeddedLdapKDC/blob/master/EmbeddedLdapKDC/src/test/java/com/krish/ead/server/KerberosLdapIntegrationTest.java

はあなたのための役に立つかもしれない埋め込まれたJUnitテストを書くためのクラスを見てもよいです。