我们知道,使用 kerberos 时 java 代码中最关键的配置项是指定默认的realm和默认的kdc,一般我们可以通过在代码中配置环境变量 java.security.krb5.realm 和
java.security.krb5.kdc 来指定以上两者的默认值,且这两个配置项总是成对出现的,即要么不做配置,要么一起配置。
那么如果 java 代码中没有配置以上两个系统参数,程序又是如何获取默认的realm和默认的kdc呢?这就涉及到 kerberos 配置文件的具体配置项了(配置文件一般是 krb5.conf )。在此跟大家简单分享下 java 代码是如何寻找 kerberos 配置文件的。
如果配置了系统参数 java.security.krb5.conf,就使用该变量的值来确定配置文件的目录和具体文件名(文件名不一定总是krb5.conf);
如果没有配置系统参数 java.security.krb5.conf, 则会尝试从以下目录加载配置文件 krb5.conf:
<java-home>\lib\security (Windows)
<java-home>/lib/security (Solaris and Linux)如果经过以上两步,仍然没有确定 kerberos 配置文件,则会尝试通过以目录确定该配置文件:
/etc/krb5/krb5.conf (Solaris)
c:\winnt\krb5.ini (Windows)
/etc/krb5.conf (Linux)经过以上三步,如果仍然