Just as the comments, "// The default ticket cache on Windows is not a file." So I don't think there are some credentials missed, or won't get read.

For the send question, the current CredentialsCache is implemented as a file based cache. It's a good idea that we adjust the CredentialsCache to accept LSA on windows platform. I made a few updates on MemoryCredentialsCache, and CredentialsCache to accept MemoryCredentialsCache months ago, I haven't test it completely. I never thought about that it could be used to improve the acquireTGTFromCache.

Andrew

Weijun Max Wang wrote:
Hi All

Current sun.security.krb5.Credentials's acquireTGTFromCache method looks
like --

Cred acquireTGTFromCache(princ, fcache) {
  if (fcache not specified) {
    if (Windows) {
      cred = function {
        get default TGT from default file cache;
        if (found && etypeSupported) return it;
        else return one from LSA;
      }
      if (princ specified && princ is not princ in cred)
        return null;
      else
        return cred;
    }
  }
  read cred for princ in fcache
  if (found && etypeSupported) return it;
  else return null;
}

It seems there's a chance on Windows that the default TGT in default
file cache (fcache == null) is not for princ, but maybe there's one for
princ in LSA. It won't get read.

Right? Shall we just move the whole fcache to the beginning and only use
LSA as a fallback?

Thanks
Max


Reply via email to