使用Java客户端进行单点登录

本文介绍了使用Java客户端进行单点登录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!,我正在寻找Java客户端中的单点登录身份验证。,因为我是使用AD登录到Windows的,所以主要目标是我不必再次输入用户名和密码。我想让Java使用我在Windows登录时收到的票证。此代码是我拥有的最适合此用途的代码:,我已经用相应的配置文件设置了java.security.krb5.confjava.security.auth.login.config属性,但是仍然弹出要求输入用户名和密码的对话框。,我也尝试使用GSSName,但GSSManager.createCredential()还要求输入用户名和密码(可能使用TextCallbackHandler())。,我试图与Waffle相处,但没有使其正常工作。大多数示例和解释都是服务器端的(我只找到一个结合了服务器端和客户端的示例,但是我无法将其分开)。,我知道,也有类似的问题(例如this),但我没有输入密码就无法正常工作。,PS:我知道,DialogCallbackHandler已删除,我仅将其用于测试目的。,好的,经过几次尝试,我找到了解决方案。问题不在于代码,而在于注册表。如this页所述,从Java7开始,您不能本机访问Windows的票证。要更改此设置,您必须设置额外的注册表项。为此,请进入注册表文件夹,并添加密钥,要使此功能完全正常工作,您需要一些其他设置:,在JAAS配置文件中,您必须设置JAAS应该使用哪些安全模块。括号前面的部件命名您的配置。如果您使用GSS库,则必须将其命名为com.sun.security.jgss.krb5.initiate。使用LoginContext时,只需将配置名称作为第一个参数传递即可。我的jaas.conf外观如下:,您还需要Kerberos模块的配置。这主要包含域地址,但可以包含附加信息。最小工作示例:,请注意,这是区分大小写的!,最后,您必须设置Java才能找到该文件。您可以通过在启动时提供属性或通过调用System.setProperty():,来执行此操作,这篇关于使用Java客户端进行单点登录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发

请先 登录 再评论,若不是会员请先 注册