|
@@ -23,6 +23,8 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
import javax.security.auth.Subject;
|
|
|
+import javax.security.auth.kerberos.KerberosKey;
|
|
|
+import javax.security.auth.kerberos.KerberosTicket;
|
|
|
import javax.security.auth.login.AppConfigurationEntry;
|
|
|
import javax.security.auth.login.Configuration;
|
|
|
import javax.security.auth.login.LoginContext;
|
|
@@ -247,7 +249,9 @@ public class KerberosAuthenticator implements Authenticator {
|
|
|
try {
|
|
|
AccessControlContext context = AccessController.getContext();
|
|
|
Subject subject = Subject.getSubject(context);
|
|
|
- if (subject == null) {
|
|
|
+ if (subject == null
|
|
|
+ || (subject.getPrivateCredentials(KerberosKey.class).isEmpty()
|
|
|
+ && subject.getPrivateCredentials(KerberosTicket.class).isEmpty())) {
|
|
|
LOG.debug("No subject in context, logging in");
|
|
|
subject = new Subject();
|
|
|
LoginContext login = new LoginContext("", subject,
|