如何在Windows Server下的Tomcat下更改Jasig CAS中keytab文件的位置

如何在Windows Server下的Tomcat下更改Jasig CAS中keytab文件的位置,tomcat,cas,jasig,Tomcat,Cas,Jasig,我正在Windows 2008R2计算机上实现CAS服务器。一切都运行得很完美,但是只有当我将我的keytab文件放在C:。我的login.conf目前看起来像这样: jcifs.spnego.initiate { com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\spn-account.keytab"; }; jcifs.spnego.

我正在Windows 2008R2计算机上实现CAS服务器。一切都运行得很完美,但是只有当我将我的keytab文件放在C:。我的login.conf目前看起来像这样:

jcifs.spnego.initiate {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\spn-account.keytab";
};
jcifs.spnego.accept {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\spn-account.keytab";
我想将keytab文件的位置更改为Tomcat目录。我尝试了以下方法(包括自行移动keytab文件),但均无效:

jcifs.spnego.initiate {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\Program%20Files\spn-account.keytab";
};
jcifs.spnego.accept {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\Program%20Files\Tomcat\spn-account.keytab";


有人知道如何将keytab文件位置更改为Tomcat目录吗?

尝试使用java风格的keytab路径。使用前斜杠而不是反斜杠;如果必须使用反斜杠,则需要对其进行双转义(每次需要四个反斜杠),以便将其读入属性,然后从属性中创建URI。

定义路径中有空格的路径以供在Java中使用的最干净的方法是使用8dot3短名称格式。使用“dir/x”确定程序文件的8dot3名称并使用该名称。它看起来像“PROGRAM~1”。您是否尝试过用java对这些路径进行加密?将所有“\”更改为“/”或“\\\”。事实上,两个都试一下。
jcifs.spnego.initiate {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\Progra~1\Tomcat\spn-account.keytab";
};
jcifs.spnego.accept {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="file:///C:\Progra~1\Tomcat\spn-account.keytab";