Java 6 SPNEGO Kerberos

У меня есть сервер, на котором размещено несколько java-апплетов, и я хочу принудительно выполнить аутентификацию, чтобы получить к ним доступ. Сейчас у меня включен NTLM, и он работает. Когда я отключаю NTLM и включаю согласование (SPNEGO), клиент Java 6 застревает на «Сервер возвращает код ответа HTTP: 401», и апплет не запускается. Я пробовал использовать Java 7, и это сработает.

Я вынужден использовать Java 6, потому что апплеты не предназначены для Java 7. Нужно ли мне что-нибудь делать, чтобы включить аутентификацию Kerberos на Java 6?

Спасибо


person user3417658    schedule 13.03.2014    source источник
comment
вам нужно получить больше информации. получить трассировку стека нарушающего класса (класс, в котором выбрасывается исключение)   -  person Arunav Sanyal    schedule 18.03.2014
comment
проверьте spnego.sourceforge.net   -  person Karthikeyan Vaithilingam    schedule 20.03.2014


Ответы (1)


Это связано с тем, что HTTP-клиент в Java должен прочитать некоторые настройки Kerberos (имя области, имя хоста KDC) для работы. В JDK 6 вы должны предоставить им файл krb5.conf, а в JDK 7 Java может собирать информацию через переменные среды.

Если ваши апплеты подписаны и имеют полные разрешения, вы можете назначить информацию области / KDC системным свойствам java.security.krb5.realm и java.security.krb5.kdc, а затем запустить HTTP-клиент. Надеюсь, что это работает.

person speedogoo    schedule 24.03.2014