ZAWWW-2st1.2-w10.tresc-1.0-Slajd4

Z Studia Informatyczne
Wersja z dnia 19:25, 28 sie 2006 autorstwa Juliusz Jezierski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Kontrola dostępu klienta

Kontrola dostępu klienta


Ochrona widoku jest najczęściej związana z tym, że pewne fragmenty aplikacji powinny być dostępne tylko dla uprawnionych użytkowników, np. po identyfikacji i podaniu hasła dostępu. Dwie podstawowe metody ochrony widoku to (1) użycie kontrolera zarządzającego dostępem do elementów i odpowiednia konstrukcja logiki aplikacji (2) konfiguracja aplikacji w taki sposób, aby wywołanie widoku było możliwe tylko jako wewnętrzne wywołanie z innego zasobu aplikacji. W przypadku użycia kontrolera ochronie może podlegać cały widok (ochrona typu "wszystko albo nic"), wówczas logika związana z ochroną powinna zostać scentralizowana w kontrolerze a nie umieszczana w poszczególnych widokach. Możliwe jest również chronienie fragmentów widoku. Fragmenty widoku mogą być wyświetlane w przypadku gdy użytkownik dysponuje właściwą rolą lub w zależności od stanu aplikacji (np. fragment widoku zawierający koszyk zakupów nie jest wyświetlany do momentu dodania pierwszego produktu do koszyka).

Serwer aplikacji umożliwia ochronę zasobów poprzez właściwą konfigurację środowiska aplikacji internetowej. Podstawowym mechanizmem ochrony są deklaracje wpisywane w pliku wdrożenia web.xml. Przykładowo, dodanie znaczników <security-constraint> zawierających wzorce adresów URL (znacznik <url-pattern>) do pliku wdrożenia web.xml powoduje objęcie zasobów opisanych przez adresy URL zasadami ochrony. Zasoby chronione w ten sposób nie są dostępne bezpośrednio z poziomu klienta HTTP, natomiast można do nich się odwoływać z poziomu kontrolera. W przypadku prostej ochrony wystarcza umieszczenie zasobu w katalogu /WEB-INF, każdy zasób umieszczony w tym katalogu jest dostępny tylko i wyłącznie z poziomu kontrolera (np. przez mechanizm RequestDispatcher).


<< Poprzedni slajd | Spis treści | Następny slajd >>