在我们的 Intranet 中,所有用户都从 Active Directory 域登录 Windows。我必须开发一种针对 Active Directory 对用户进行身份验证的解决方案,该解决方案在 Tomcat 中运行并适用于 Servlet 和 Axis2。
我已经能够使用基本的 JavaSE 手动验证身份验证。我还创建了一个测试 Servlet,它从 POST 接收登录名和密码并且它也经过身份验证,所以如果我使用 HTTPS,至少我可以使用这个丑陋的解决方案。
我认为 HTTP 身份验证是最好的方法,因为它是 HTTP 标准,适用于 Servlet 和 Axis2 以及浏览器和任何类型的 SOAP 客户端。
对于浏览器,期望的行为是浏览器将打开登录模式窗口,用户将输入登录名和密码,我从 Servlet 中检索它们并针对 AD 进行验证。对于 Axis2,客户端处理其设置 HTTP 标头的方式,我从 Axis2 用于创建 WebService 的类中检索它(如何做到这一点我不知道也没有搜索过......)并做同样的事情确认。
问题是我面临着很多可能性,无法让其中任何一个发挥作用。大多数教程使用conf/tomcat-users.xml
并且从不给我密码。其他人使用 NTLM 或 Kerberos,我已经尝试将 spnego 用于 Servlet,但它根本不起作用,并且不适用于 Axis2。我宁愿使用不需要第三方库的本机解决方案。
关于我可以从哪里开始的任何建议?