我的 mongodb 设置为使用 Kerberos,当我从 shell 访问数据库时一切正常。
现在我需要我的 Java 应用程序也连接到数据库,使用 Kerberos 进行身份验证。除了http://docs.mongodb.org/ecosystem/tutorial/authenticate-with-java-driver/中的几行之外,我还没有找到如何完成这项工作。
我的主要用例比该页面上描述的要难。我有一个服务于多个用户的 tomcat 服务器 - 所以我需要用户登录到应用程序并提供他们的主体名称和密码,我希望 Java 服务器向 KDC 进行身份验证,然后使用提供的票证到 mongodb - 我可以找不到办法做到这一点。
如果这是不可能的,我必须为每个用户使用单独的 tomcat 服务器,我假设我可以做一个 kinit 然后启动 tomcat?这意味着每个用户都必须运行自己的服务器。不是那么好 - 但即使在这里 - 我需要做什么才能让 Java 进程使用 kinit 在会话中放置的任何内容。
关于如何做到这一点的任何其他建议也非常感谢(例如,我在 tomcat 中运行的 servlet 可以从用户的浏览器中获得一些 Kerberos 票吗?没有火箭科学和昂贵的许可证......)。我想要做的就是允许人们使用 Kerberos 凭据登录到 mongodb——但通过 Java 应用程序。