Masowe dodawanie wyjątków Java

Java nastręcza administratorom wielu problemów w zakresie utrzymania i wdrażania rozwiązań o nią opartych. Od wersji Java 7 Update 51 wprowadzono dodatkowy mechanizm kontrolny w postaci Listy wyjątków witryn. Zmiana ta oznacza, że strony używające apletów typu RIA muszą być dodane do wspomnianej listy wyjątków na każdej maszynie korzystającej z Java i apletów RIA. W artykule tym pokażę jak masowo ustawić taki wyjątek w obrębie infrastruktury zarządzanej z poziomu Active Direcotry.

Konieczność dodawania do listy wyjątków adresu url witryny korzystającej z apletu Rich Internet Application oznacza, że bez tego kroku nasza aplikacja straci m.in. możliwość komunikowania się z Java Script. Ustawienie wyjątku samo w sobie nie jest szczególnie skomplikowane i w warunkach małych albo średnich infrastruktur IT można przerzucić je na użytkowników. Jeżeli jednak zarządzamy dużą siecią z wieloma użytkownikami i stacjami roboczymi sprawa staje się dużo bardziej skomplikowana, zwłaszcza w kontekście restrykcyjnych polityk bezpieczeństwa i uprawnień, które często nie zezwalają użytkownikom na wykonywanie zmian w ustawieniach oprogramowania.

Zgodnie z dokumentacją RIA lista wyjątków stron (exception sites list) dostępna jest z poziomu panelu kontrolnego Java (Java Control Panel). Jednak zmiana ustawień w ten sposób wymaga uruchomienia aplikacji na każdej stacji roboczej. Aby wprowadzić zmiany automatycznie i bez ingerencji użytkownika musimy sięgnąć do drugiej metody dostępu do listy wyjątków stron. Przechowywana jest ona jako plik tekstowy, w którym pojedyncze wpisy umieszczane są jako kolejne linie. Możemy więc zmieniać listę podmieniając plik bądź dodając do niego linie. Sama lista przechowywana jest per user i dostępna jest (w systemach Windows) w lokalizacji:

<User Application Data Folder>\LocalLow\Sun\Java\Deployment\security

W obrębie infrastruktur zarządzanych przy pomocy Active Directory możemy więc ustawić odpowiednie reguły, które podczas logowania użytkownika skopiują do podanego wyżej katalogu przygotowany wcześniej plik z listą wyjątków stron.

Realizację takiej operacji należy zacząć od umieszczenia w zasobach kontrolera domeny pliku z listą wyjątków stron, który – zgodnie z dokumentacją Java – nazywa się exception.sites. Plik możemy umieścić np. w lokalizacji:

 \\<DOMAIN>\netlogon\exception.sites

Następnie tworzymy GPO (Group Policy Object) dla którego w sekcji User Configuration, w gałęzi Files ustawiamy regułę, która skopiuje plik z listą wyjątków stron z zasobu kontrolera domeny do katalogu domowego użytkownika logującego się na maszynie. Zmienną środowiskową Windows wskazującą ten katalog jest %UserProfile% i zgodnie z podaną wcześniej ścieżką docelowa lokalizacja pliku będzie wyglądała więc następująco:

%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites

Tak przygotowany GPO wydaje się kompletny. Należy jednak pamiętać, że aby Active Directory poprawnie interpretowało zmienne środowiskowe należy w ustawieniach GPO zaznaczyć opcję Run in logged-on user’s sceurity context (user policy option). W przeciwnym wypadku obiekt uruchomiony zostanie jako System user i zmienne nie zadziałają poprawnie.

W opisany powyżej sposób możemy łatwo dostarczyć przygotowany wcześniej plik z wyjątkami dla każdego użytkownika, który zaloguje się w domenie. Korzystając ze szczegółowych opcji GPO możemy ustalić czy Windows ma nadpisać plik, scalić itd. Dokumentacja Deployment Configuration File and Properties wskazuje lokalizacje plików konfiguracyjnych Java również w innych systemach operacyjnych, co pozwala analogicznie przygotować skrypty kopiujące odpowiednie ustawienia również w Linux Mac OS.

Mikołaj Niedbała

I'm a Poland based IT administrator, linux administrator and IT engineer creating professional IT infrastructure solutions based on Linux and virtual environments.

2 thoughts to “Masowe dodawanie wyjątków Java”

  1. Excellent blog! Do you have any helpful hints for
    aspiring writers? I’m planning to start my own site soon but I’m a
    little lost on everything. Would you suggest starting with a free platform like WordPress
    or go for a paid option? There are so many options out there that I’m completely overwhelmed
    .. Any suggestions? Appreciate it!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *