使用提供的用户名,密码和域名,如何检索一个布尔值,指示用户是否已成功通过主域控制器进行身份验证?应使用Windows域控制器的Kerberos协议执行身份验证。提前谢谢,Dan
答案 0 :(得分:3)
可以免费实现仅限Windows的JAAS登录模块和SSO协商(Kerberos / NTLM)身份验证器:Waffle。
答案 1 :(得分:1)
您需要自己编写或使用第三方验证模块。当我这样做时,JDK没有提供任何内容,因此我使用了this tool。请注意,它是GPL,但您可以从那里学习。你将不得不创建conf。描述您的身份验证模块的文件,并使用 java.security.auth.login.config 属性将其提供给您的JVM(例如,使用-D或其中任何一种方式)。对于Tagish,它看起来像这样:
NTLogin { com.tagish.auth.win32.NTSystemLogin required returnNames = true returnSIDs = false defaultDomain =“domain”; };
您需要的另一件事是通过 java.security.krb5.conf 属性指定kerberos配置文件。我没有这个文件的详细信息,但你可以在网上轻松找到它 - 谷歌关于krb5.conf。此文件中的设置必须与您的Windows域和其他特定于Windows的设置相匹配。
配置起来有点棘手,但对我来说它运行得非常好,非常强大。