CAS – konfiguracja aplikacji klienta cz. 2 Skip to content →

CAS – konfiguracja aplikacji klienta cz. 2

W poprzednim poście opisywałem konfigurację aplikacji dostawcy tożsamości. W tej części przejdziemy przez zagadnienia integracji CAS z naszą aplikacją za pomocą biblioteki Pac4J.

Zależności Maven

Pierwszym krokiem integracji jest dodanie do naszego projektu niezbędnych zależności. Jest to Pac4J oraz integracja wspomnianej biblioteki ze Spring MVC lub Spring Boot.

Przykładowe wersje powyższych artefaktów:

Najnowsze wersje można sprawdzać na stronie mvnrepository.com

Konfiguracja biblioteki Pac4J

Konfiguracja biblioteki Pac4J polega na konfiguracji klienta serwera CAS tzn. CasClient oraz utworzeniu obiektu klasy konfiguracyjnej.

Konfiguracja klienta wymaga określenia adresu serwera CAS, sposobu wylogowania oraz preferowanego protokołu komunikacji pomiędzy aplikacją a dostawcą tożsamości (w tym przypadku CAS20). W celu dostosowania procesu autentykacji do obsługi wielu ról (dla jednego użytkownika) przygotowałem również specjalną klasę, która jest odpowiedzialna za generowanie obiektu zalogowanego klienta. W otrzymanym od dostawcy tożsamości komunikacie role połączone są przecinkiem w polu o nazwie roles .

Klasa konfiguracyjna pozwala na dodanie odpowiedniej obsługi poszczególnych ról, jakie planujemy akceptować w naszej aplikacji. Na potrzeby przykładu wybrałem dwie podstawowe: ROLE_ADMIN, ROLE_USER.

Plik konfiguracyjny

W pliku  Pac4JConfig.java zostały użyte wartości zapisane w pliku konfiguracyjnym application.properties . Specyfikują one poszczególne adresy oraz porty, które są wykorzystywane podczas procesów związanych z autoryzacją.

Konfiguracja zabezpieczeń

Następnym krokiem konfiguracji naszej aplikacji jest określenie jakie adresy będą dostępne dla poszczególnych ról. Robimy to poprzez dodanie nowych interceptorów znanych ze Springa:

Jako 3 argument w konstruktorze klasy RequiresAuthenticationInterceptor  podajemy nazwy, które ustawiliśmy dla poszczególnych ról w pliku Pac4JConfig.java.

Podsumowanie

Dzięki bibliotece Pac4J oraz jej integracji z platformą Spring konfiguracja aplikacji w celu korzystania z CAS jako dostawcy tożsamości jest bardzo szybka. Warto dodać, że twórcy biblioteki przygotowali odpowiednie interfejsy do dostosowywania całego procesu autentykacji do naszych potrzeb.

Przydatne link

  1. Pac4J na github.com – github.com/pac4j/spring-security-pac4j
  2. Repozytorium Maven – mvnrepository.com/