用于测试的Java编写的嵌入式Kerberos服务器

时间:2013-01-18 21:40:26

标签: java integration-testing kerberos

是否有人知道任何可嵌入的Kerberos服务器(KDC / KAdmin),这些服务器是用Java编写的,可以在JVM进程中运行(类似于Hadoop minicluster或嵌入式LDAP服务器)?

我的目标是让人们运行需要Kerberos身份验证的集成测试,而无需安装本地kerberos服务器/配置远程服务器并连接到它。

4 个答案:

答案 0 :(得分:6)

答案 1 :(得分:0)

我/我正在寻找这样的东西,但这根本不可能,因为你需要一个功能齐全的DNS服务器。完全解耦的系统是必要的。您可以通过virtualization-maven-plugin和VirtualBox中的一组虚拟机以及内部网络实现此目的。

LDAP服务器根本无法帮助您,因为它们对GSS-API和Kerberos完全没有任何帮助。 SASL通过将auth委派给下一个可用的KDC来完成所有工作。

您需要KDC和DNS服务器。您可以在一台机器上尝试Samba 4,设置第二台连接的机器 域名。在其上安装Hadoop,添加第三个(客户端),从那里加入并运行测试。

似乎你可以让Apache DS模仿KDC:http://directory.apache.org/apacheds/configuration/ads-2.0-configuration.html

答案 2 :(得分:0)

我有一个用于类似目的的嵌入式LDAP编写,您也可以使用它来测试Kerberos,对于测试Hadoop Kerberos测试等情况非常有用。

https://github.com/krishdey/EmbeddedLdapKDC

您还可以查看编写嵌入式JUnit测试的类https://github.com/krishdey/EmbeddedLdapKDC/blob/master/EmbeddedLdapKDC/src/test/java/com/krish/ead/server/KerberosLdapIntegrationTest.java

可能对你有用。

答案 3 :(得分:0)

Hadoop发布了可以使用的MiniKdc类。来自MiniKdc类文档的注释:

  

基于Apache Directory Server的迷你KDC,可以嵌入测试用例中,也可以在命令行中用作独立KDC。

https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-minikdc

相关问题