Непонимание JAAS/JGSS

Вот простой класс, который должен выполнять аутентификацию JAAS+JGSS. На этапе «createCredential» происходит сбой:GSSException: не предоставлены действительные учетные данные (уровень механизма: не удалось найти какой-либо тег Kerberos). Кто-нибудь знает причину этого? Заранее спасибо. п

      package tsn.jaas;

import java.security.AccessControlContext;

public class Test {
    private static Logger logger = Logger.getLogger(JaasClient.class.getName());

    
    public static void main(String[] args) throws LoginException, GSSException {
        logger.info("Client starting - configuration: " + System.getProperty("java.security.auth.login.config"));
        
        // JAAS Login
        LoginContext lc = new LoginContext("JaasClient", new TextCallbackHandler()); 
        lc.login();
        logger.info("Logged in");
        
        // Extract principal name
        final Set<Principal> principalSet = lc.getSubject().getPrincipals(); // extract principal
        final Principal principal = principalSet.iterator().next();
        logger.info("Principal: " + principal.getName());
        
        // Get GSS Name
        GSSManager manager = GSSManager.getInstance();
        GSSName gssName = manager.createName(principal.getName(),GSSName.NT_USER_NAME);
        
        // Get credential
        AccessControlContext acc = (AccessControlContext) Subject.doAsPrivileged(lc.getSubject(), new PrivilegedAction<Object>() {
              public Object run() {
                logger.info("DoAsPrivileged");
                try {
                    GSSCredential clientCreds = manager.createCredential(gssName, GSSCredential.DEFAULT_LIFETIME, new Oid("1.2.840.113554.1.2.2"), GSSCredential.INITIATE_ONLY);
                } catch (GSSException e) {
                    e.printStackTrace();
                }
                logger.info("DoAsPrivileged ended");
                return null;
              }
            }, null);
    } // main
} // class

0 ответов

Другие вопросы по тегам