我需要在unix机器上使用kerberos登录才能使用Windows网络调用URL。我可以在windows中使用useTicketCache = true,一切正常。如何从unix框中执行此操作,只需将user / pass传递给我的java程序而不是使用票证缓存?
答案 0 :(得分:1)
这不是你应该去的方式。人类本身应该在Windows登录时获得TGT。您访问TGT然后从KDC获取服务票证。 如果你的unix设置没有使用winbind来执行auth,那么你就无法访问预先填充的凭据缓存,你有三个选择:
kinit
Username
和/或PasswordCallback
传递给new LoginContext
。我赞成1或2。
选项二在Java中可以这样工作:
Runtime.exec("kinit " + upn);
// Obtain the input stream of the forked process
is.write(password);
// Check exit code
现在,凭据缓存中有一个本机有效的TGT。 Java现在可以选择这个并请求进一步的服务票据。