Использование Kerberos с Webstart. Не могу получить TGT из кэша билетов

У меня проблемы с использованием Kerberos с Webstart. Я хочу получить Принципал текущего подписанного на Windows-пользователя, и API пытается получить tgt из кэша билетов.

AllowTgtSessionKey установлен в реестре на 1.

С обычным Java-приложением все в порядке, и я получаю билет и могу использовать принципал.

Но когда я развертываю свое приложение как Webstart, я не могу получить билет из кэша и получить исключение LoginException, когда я вызываю LoginContext # login.

Вот мой код:

Конфигурация:

private static Configuration getProgramaticLoginConfig() 
{
    HashMap<String, String> options = new HashMap<String, String>(); 
    options.put("useTicketCache", "true"); 
    options.put("doNotPrompt", "true"); 
    options.put("debug","true");                                       
    AppConfigurationEntry krb5LoginModule = new AppConfigurationEntry("com.sun.security.auth.module.Krb5LoginModule", LoginModuleControlFlag.REQUIRED, options); 
    final AppConfigurationEntry[] aces = new AppConfigurationEntry[]{krb5LoginModule}; 
    Configuration progConfig = new Configuration() 
    { 
      @Override 
      public AppConfigurationEntry[] getAppConfigurationEntry(String arg0) 
      {                                 
           return aces; 
      } 

    }; 
    return progConfig; 
}

И вот мой код:

LoginContext lc = null;
    try {
        // create a LoginContext
        lc = new LoginContext("asdjfkasdjkfasdö",new DialogCallbackHandler());
    } catch(Exception e) {
        log.error("Initialisierung fehlgeschlagen",e);
    }
    try {       
        // login (effectively populating the Subject)
        lc.login();
    } catch(LoginException e) {
        log.error("Login failed",e);
    }
try {
    //get the Subject that represents the signed-on user
    Subject signedOnUserSubject = lc.getSubject();
...

Что я делаю неправильно? Все банки подписаны!

Спасибо за вашу помощь.

С уважением, Хольгер

1 ответ

Когда вы запускаете приложение с помощью веб-запуска, оно находится в контексте апплета с ограниченными привилегиями.

Вам нужно будет подписать свою банку, чтобы разрешить вход в систему jaas.

Пример здесь http://www.narendranaidu.com/2007/11/3-easy-steps-to-self-sign-applet-jar.html

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