Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Апплеты > Аплет и авторизация в Apache


Автор: UViolet 25.2.2009, 20:15
Здравствуйте.

Ситуация: 1. пользователь авторизуется в системе. 2. загружает аплет. 3. закрывает окно с аплетом, при этом основное окно остается открытым (аплет загружается в отдельном окне). 4. затираю с помощью java script имя/пароль пользователя в IE (т.к. используется BASIC аутентификация), редирект на стартовую страницу 5. появляется окно с запросом логина/пароля 6. Захожу под другим пользователем. 7. загружаю аплет - функционал аплета не изменился, права остались от предыдущего пользователя.

Вопрос: кто-нибудь встречался с таким? пожалуйста, помогите. 

Автор: COVD 26.2.2009, 17:48
Цитата

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


Если браузер не закрывался, то JVM не рестартовывала между двумя загрузками апплета и java классы не перегружались. Следовательно, статические переменные могли сохранить свои значения и заново не инициализироваться.  

Автор: UViolet 27.2.2009, 11:01
Спасибо большое за ответ. Понимаю свою некомпетентность. возможно одно - два слова профессионала наведут меня на правильную мысль. Я подозреваю что здесь замешаны ClassLoder и кеширование на стороне клиента. Есть ли такая возможность указать jvm что необходимо загрузить новую информацию с сервера , а не использовать кеш? 

Автор: COVD 27.2.2009, 18:37
Цитата

функционал аплета не изменился, права остались от предыдущего пользователя

А как он , функционал, должен меняться? Обычно, через параметры, которые указаны на html странице, описывающей апплет.  Апплет когда стартует, то эти параметры может прочитать. Тогда надо начать с проверки, изменяются ли эти параметры. И выяснить, где эта страница с параметрами формируется - на сервере или пишется javascript'ом в браузере, т.е. кто дает информацию апплету о пользователе. Если новые параметры в апплет передаются, то надо убедиться, что они используются должным образом. Ну и т.д. по цепочке. 

Автор: UViolet 30.9.2009, 20:17
про проблему снова вспомнила, после долгого перерыва =) 
Еще раз прошу совета у форумчан. 
Ситуация следующая: после запуска IE при запуске апплета создается поток RMI Invocation ...(вроде бы с таким названием), открывается диалог Integrated Windows Authentication (для авторизации на сервере). После успешной авторизации все аплеты выполняются в этом потоке не спрашивая логин/пароль, пока не закрою IE.
Вопрос: буду рада любому ответу/совету/комментарию как разлогиниться/убить поток, не закрывая IE.

Автор: UViolet 1.10.2009, 08:55
ладно, поток здесь не при чем. возможно куки. как аплеты запоминают под каким пользователем залогинились однажды? 

Автор: UViolet 1.10.2009, 10:53
понятно. jvm проверяет версию файла, если локальная и удаленная совпадают, то загружает из кеша. кеш находится в C:\...\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\0\ 1ec40c0-2c2d6971-9.0.117.1-

где 9.0.117.1 версия файла, остальные идентификаторы?
как же быть

Автор: LSD 1.10.2009, 12:11
Цитата(UViolet @  1.10.2009,  08:55 Найти цитируемый пост)
как аплеты запоминают под каким пользователем залогинились однажды?

Как написано так и запоминают smile У апплета нет стандартного функционала по авторизации на сервере. Нормально реализованный апплет при вызове destroy() должен деинициализировать все свои переменные, очистить все кеши и т.д.

Заставить JVM загрузить апплет заново можно указав другую ссылку на jar архив с апплетом. Например можно к имени аплета в конец добавлять случайное число. Но это потребует поддержки со стороны сервера, и не факт что JVM будет грузить классы заново из нового архива.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)