Změny dokumentu CAS Java klient
Naposledy změněno Petr Abrahamczik 16.04.2024 10:22
Od verze 6.1
změnil(a) Petr Abrahamczik
k 07.02.2019 10:50
k 07.02.2019 10:50
Změnit komentář:
Žádné komentáře k této verzi
Na verzi 20.1
změnil(a) Petr Abrahamczik
k 16.04.2024 10:22
k 16.04.2024 10:22
Změnit komentář:
Žádné komentáře k této verzi
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,104 +1,111 @@ 1 -V ukázkovém příkladu je popsán způsob konfigurace webové aplikace v Javě pomocí [[Java Apereo CAS Client>>https://github.com/apereo/java-cas-client]]. 1 +V ukázkovém příkladu je popsán základní způsob konfigurace webové aplikace v Javě pomocí [[Java Apereo CAS Client>>https://github.com/apereo/java-cas-client]]. Aplikace je schopna získat přihlášeného uživatele pomocí CAS v3 protokolu. 2 2 3 -1. Do aplikace je potřeba přidat knihovny klienta https://mvnrepository.com/artifact/org. jasig.cas.client/cas-client-core buď přímo a nebo pomocí nějakého buildovacího nástroje např. Maven.(((4 -{{code}} 3 +1. Do webové aplikace je potřeba přidat knihovny klienta https://mvnrepository.com/artifact/org.apereo.cas.client/cas-client-core buď přímo a nebo pomocí nějakého buildovacího nástroje např. Maven.((( 4 +{{code language="xml"}} 5 5 <dependency> 6 - <groupId>org. jasig.cas.client</groupId>6 + <groupId>org.apereo.cas.client</groupId> 7 7 <artifactId>cas-client-core</artifactId> 8 - <version> 3.5.1</version>8 + <version>4.0.4</version> 9 9 </dependency> 10 10 {{/code}} 11 11 ))) 12 -1. Nakonfigurovat web.xml. V uvedené konfiguraci je nutné nahradit adresu klienta https://klient.vsb.cz s URL našeho serveru.((( 13 -{{code}} 14 - <filter> 15 - <filter-name>CAS Single Sign Out Filter</filter-name> 16 - <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> 17 - <init-param> 18 - <param-name>casServerUrlPrefix</param-name> 19 - <param-value>https://www.sso.vsb.cz</param-value> 20 - </init-param> 21 - </filter> 22 - 23 - <filter> 24 - <filter-name>CAS Authentication Filter</filter-name> 25 - <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> 26 - <init-param> 27 - <param-name>casServerUrlPrefix</param-name> 28 - <param-value>https://www.sso.vsb.cz</param-value> 29 - </init-param> 30 - <init-param> 31 - <param-name>serverName</param-name> 32 - <param-value>https://klient.vsb.cz</param-value> 33 - </init-param> 34 - </filter> 12 +1. Nakonfigurovat ##web.xml##. V uvedené konfiguraci je nutné nahradit adresu klienta ##https:~/~/klient.vsb.cz## adresou našeho serveru. V mapování filtru ##CAS Authentication Filter## je možné uvést místo ##/*## kontext do chráněné zóny aplikace např. ##/private/*## . ((( 13 + 14 +{{code language="xml"}} 15 +<filter> 16 + <filter-name>CAS Single Sign Out Filter</filter-name> 17 + <filter-class>org.apereo.cas.client.session.SingleSignOutFilter</filter-class> 18 + <init-param> 19 + <param-name>casServerUrlPrefix</param-name> 20 + <param-value>https://www.sso.vsb.cz</param-value> 21 + </init-param> 22 +</filter> 23 + 24 +<filter> 25 + <filter-name>CAS Authentication Filter</filter-name> 26 + <filter-class>org.apereo.cas.client.authentication.AuthenticationFilter</filter-class> 27 + <init-param> 28 + <param-name>casServerUrlPrefix</param-name> 29 + <param-value>https://www.sso.vsb.cz</param-value> 30 + </init-param> 31 + <init-param> 32 + <param-name>serverName</param-name> 33 + <param-value>https://klient.vsb.cz</param-value> 34 + </init-param> 35 +</filter> 35 35 36 - <filter> 37 - <filter-name>CAS Validation Filter</filter-name> 38 - <filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class> 39 - <init-param> 40 - <param-name>casServerUrlPrefix</param-name> 41 - <param-value>https://www.sso.vsb.cz</param-value> 42 - </init-param> 43 - <init-param> 44 - <param-name>serverName</param-name> 45 - <param-value>https://klient.vsb.cz</param-value> 46 - </init-param> 47 - </filter> 48 - 49 - <filter> 50 - <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 51 - <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> 52 - </filter> 37 +<filter> 38 + <filter-name>CAS Validation Filter</filter-name> 39 + <filter-class>org.apereo.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class> 40 + <init-param> 41 + <param-name>casServerUrlPrefix</param-name> 42 + <param-value>https://www.sso.vsb.cz</param-value> 43 + </init-param> 44 + <init-param> 45 + <param-name>serverName</param-name> 46 + <param-value>https://klient.vsb.cz</param-value> 47 + </init-param> 48 +</filter> 49 + 50 +<filter> 51 + <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 52 + <filter-class>org.apereo.cas.client.util.HttpServletRequestWrapperFilter</filter-class> 53 +</filter> 54 + 55 +<filter> 56 + <filter-name>CAS Assertion Thread Local Filter</filter-name> 57 + <filter-class>org.apereo.cas.client.util.AssertionThreadLocalFilter</filter-class> 58 +</filter> 59 + 60 +<filter-mapping> 61 + <filter-name>CAS Single Sign Out Filter</filter-name> 62 + <url-pattern>/*</url-pattern> 63 +</filter-mapping> 64 + 65 +<filter-mapping> 66 + <filter-name>CAS Authentication Filter</filter-name> 67 + <url-pattern>/*</url-pattern> 68 +</filter-mapping> 53 53 54 - <filter> 55 - <filter-name>CAS Assertion Thread Local Filter</filter-name> 56 - <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> 57 - </filter> 58 - 59 - <filter-mapping> 60 - <filter-name>CAS Single Sign Out Filter</filter-name> 61 - <url-pattern>/*</url-pattern> 62 - </filter-mapping> 63 - 64 - <filter-mapping> 65 - <filter-name>CAS Authentication Filter</filter-name> 66 - <url-pattern>/*</url-pattern> 67 - </filter-mapping> 70 +<filter-mapping> 71 + <filter-name>CAS Validation Filter</filter-name> 72 + <url-pattern>/*</url-pattern> 73 +</filter-mapping> 68 68 69 - <filter-mapping> 70 - <filter-name>CAS Validation Filter</filter-name> 71 - <url-pattern>/*</url-pattern> 72 - </filter-mapping> 73 - 74 - <filter-mapping> 75 - <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 76 - <url-pattern>/*</url-pattern> 77 - </filter-mapping> 78 - 79 - <filter-mapping> 80 - <filter-name>CAS Assertion Thread Local Filter</filter-name> 81 - <url-pattern>/*</url-pattern> 82 - </filter-mapping> 83 - 84 - <listener> 85 - <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> 86 - </listener> 75 +<filter-mapping> 76 + <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> 77 + <url-pattern>/*</url-pattern> 78 +</filter-mapping> 79 + 80 +<filter-mapping> 81 + <filter-name>CAS Assertion Thread Local Filter</filter-name> 82 + <url-pattern>/*</url-pattern> 83 +</filter-mapping> 84 + 85 +<listener> 86 + <listener-class>org.apereo.cas.client.session.SingleSignOutHttpSessionListener</listener-class> 87 +</listener> 87 87 {{/code}} 88 88 ))) 89 -1. CAS server musí důvěřovat certifikátu klienta (může se stát, že bude potřeba přidat certifikát na CAS server) a zároveň 90 - klient musí důvěřovat certifikátu serveru. 91 -1. Pro odhlášení uživatele z CAS je potřeba přistoupit na url https://www.sso.vsb.cz/logout. ((( 90 +1. Přihlášenou osobu v aplikaci lze pak jednoduše zjistit pomoci((( 91 +{{code language="java"}} 92 +request.getRemoteUser(); 93 +{{/code}} 94 +))) 95 +1. Připadné atributy osoby((( 96 +{{code language="java"}} 97 +import org.apereo.cas.client.authentication.AttributePrincipal; 98 + 99 +AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal(); 100 +Map attributes = principal.getAttributes(); 101 +{{/code}} 102 +))) 103 +1. Pro odhlášení uživatele z CAS je potřeba přistoupit na url ##https:~/~/www.sso.vsb.cz/logout##.((( 92 92 Před odhlášením z CAS je vhodné zrušit session v aplikaci klienta (zaleží to však na konkrétním klientu). 93 93 94 - Pokud po odhlášení z CAS nechceme aby uživatel zůstal na odhlašovací stránce CASu, můžeme k odhlašovací url přidat parametr 'service', který106 + Pokud po odhlášení z CAS nechceme aby uživatel zůstal na odhlašovací stránce CASu, můžeme k odhlašovací url přidat parametr ##service##, který 95 95 obsahuje url (nejlépe zakódovanou pomocí URL kódování) na kterou se má po odhlášení přesměrovat. Url musí obsahovat adresu, která je pro službu povolena. 96 96 97 - např. https://www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz 109 + např. ##https:~/~/www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz## 98 98 ))) 99 -1. Přihlášenou osobu v aplikaci lze pak jednoduše zjistit pomoci((( 100 -{{code}} 101 - request.getRemoteUser(); 102 -{{/code}} 103 -))) 104 104