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

Java编写的用于测试的嵌入式Kerberos服务器,java,integration-testing,kerberos,Java,Integration Testing,Kerberos,是否有人知道任何嵌入式Kerberos服务器(KDC/KAdmin),它们是用Java编写的,可能只在JVM进程中运行(类似于Hadoop小型集群或嵌入式LDAP服务器) 我的目标是让人们运行需要Kerberos身份验证的集成测试,而不必安装本地Kerberos服务器/配置远程服务器并连接到它。我也在/正在寻找这样的东西,但这实际上是不可能的,因为您需要一个功能齐全的DNS服务器。一个完全解耦的系统是必要的。您可以通过和具有内部网络的VirtualBox中的一组虚拟机来实现这一点 LDAP服务器

是否有人知道任何嵌入式Kerberos服务器(KDC/KAdmin),它们是用Java编写的,可能只在JVM进程中运行(类似于Hadoop小型集群或嵌入式LDAP服务器)


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

我也在/正在寻找这样的东西,但这实际上是不可能的,因为您需要一个功能齐全的DNS服务器。一个完全解耦的系统是必要的。您可以通过和具有内部网络的VirtualBox中的一组虚拟机来实现这一点

LDAP服务器对您毫无帮助,因为它们对GSS-API和Kerberos完全不起作用。SASL通过将auth委托给下一个可用的KDC来完成所有工作

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


看起来您可以让ApacheDS模拟KDC:

您可以试试ApacheDirectory服务器()。它支持LDAP和Kerberos。请参见此示例:


我已经编写了一个嵌入式LDAP,用于类似的目的,您也可以使用它进行Kerberos测试,特别适用于测试Hadoop Kerberos测试之类的情况

您还可以查看用于编写嵌入式JUnit测试的类


可能对您有用。

Hadoop发布了一个可以使用的MiniKdc类。从MiniKdc类文档注释:

基于ApacheDirectory服务器的迷你KDC,可以嵌入到测试用例中,也可以从命令行作为独立的KDC使用


我认为我不需要DNS,我可以提供IP并使用它们,但我确实需要KDC作为java应用程序实现并在测试过程中运行。尚未找到。不,这不起作用。Kerberos要求DNS在没有它的情况下无法工作,除非您将所有主机放入
/etc/hots
。这很好,我可以将所有需要的主机放入其中,或者使其始终使用localhost进行所有通信。谢谢,我将尝试这样做,并报告其进展情况me@Michael-O这个测试演示了KDC的功能,它是可嵌入的,并且是用纯java实现的。是的,谢谢-刚刚有时间回到这个任务上来,看起来这是一条路要走。我将尝试,并在这里报告,如果它的工作预期与否,它会造成任何意外的痛苦。谢谢你们两位!这个例子是当前的还是推荐的方法?