我有一台服务器,它托管了几个java applet,我想通过强制身份验证来访问它们。现在我已经启用了NTLM,并且它可以工作。当我禁用NTLM并启用协商(SPNEGO)时,Java 6客户端将停留在"Server returned response code: 401“处,并且applet将不会启动。我试过使用Java7,它可以工作。
我被迫使用Java 6,因为applet不是为Java 7设计的。我需要做些什么才能在Java 6上启用Kerberos身份验证吗?
谢谢
发布于 2014-03-24 08:58:43
这是因为Java中的HTTP客户端需要读取一些Kerberos设置(域名、KDC主机名)才能工作。在JDK 6中,您必须为它们提供一个krb5.conf文件,而在JDK 7中,Java能够通过环境变量收集信息。
如果您的applet已签名且具有完全权限,则可以将领域/KDC信息分配给系统属性java.security.krb5.realm和java.security.krb5.kdc,然后运行HTTP客户端。希望它能起作用。
https://stackoverflow.com/questions/22392293
复制相似问题