Как всегда, с Java-приложениями у админов возникает аццкий геморрой. Не один, так другой.
Реальная ситуация. Локальная сеть выходит в большой и злобный интернет через прокси-сервер. На клиентских машинах установлена винда, все в AD-домене. Прокси авторизует клиентов посредством Kerberos (SPNEGO), для них всё работает прозрачно (Single Sign-On). Но только до тех пор, пока пользователь не попытается запустить какой-нибудь Javaписьный банк-клиент.
Во-первых, Java-машина для обмена данными с сервером использует не установленный браузером канал связи, а пытается открыть свой собственный. Даже простейший Java-апплет, интегрированный в интерфейс браузера, всё равно создаёт отдельную TCP-сессию. А следовательно, Java-машине тоже надо как-то распознать наличие прокси и отдельно самостоятельно аутентифицироваться на нём. Чего она просто так "из коробки" в случае с Kerberos под виндой сделать не может. Ей нужен костыль в виде allowtgtsessionkey. Вот спрашивается, ну зачем ей нужно обязательно расшифровывать сессионный kerberos ticket? Она выглядит как браузер, обменивается данными как браузер, работает как браузер, но почему-то не может аутентифицироваться как браузер.
А во-вторых, разработчики банк-клиентов почему-то не используют встроенных возможностей Java-машины, а реализуют функции подключения к серверу самостоятельно. Вот, например, весьма популярный в наши дни iBank2.
А вот это банк-клиент Промсвязьбанка.
Ну вот и как прикажете пропускать эти поделия через прокси-сервер с Kerberos-аутентификацией? Ну вот как, а?