Wiki source code of CAS Java klient
Last modified by Petr Abrahamczik on 16.04.2024 10:22
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
15.1 | 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.1 | 2 | |
![]() |
20.1 | 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.((( |
![]() |
8.1 | 4 | {{code language="xml"}} |
![]() |
2.1 | 5 | <dependency> |
![]() |
20.1 | 6 | <groupId>org.apereo.cas.client</groupId> |
7 | <artifactId>cas-client-core</artifactId> | ||
8 | <version>4.0.4</version> | ||
![]() |
2.1 | 9 | </dependency> |
10 | {{/code}} | ||
11 | ))) | ||
![]() |
19.1 | 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 | |||
![]() |
9.1 | 14 | {{code language="xml"}} |
15 | <filter> | ||
16 | <filter-name>CAS Single Sign Out Filter</filter-name> | ||
![]() |
20.1 | 17 | <filter-class>org.apereo.cas.client.session.SingleSignOutFilter</filter-class> |
![]() |
9.1 | 18 | <init-param> |
19 | <param-name>casServerUrlPrefix</param-name> | ||
20 | <param-value>https://www.sso.vsb.cz</param-value> | ||
21 | </init-param> | ||
![]() |
15.1 | 22 | </filter> |
![]() |
8.1 | 23 | |
![]() |
9.1 | 24 | <filter> |
25 | <filter-name>CAS Authentication Filter</filter-name> | ||
![]() |
20.1 | 26 | <filter-class>org.apereo.cas.client.authentication.AuthenticationFilter</filter-class> |
![]() |
9.1 | 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> | ||
![]() |
2.1 | 36 | |
![]() |
9.1 | 37 | <filter> |
38 | <filter-name>CAS Validation Filter</filter-name> | ||
![]() |
20.1 | 39 | <filter-class>org.apereo.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class> |
![]() |
9.1 | 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> | ||
![]() |
15.1 | 49 | |
![]() |
9.1 | 50 | <filter> |
51 | <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> | ||
![]() |
20.1 | 52 | <filter-class>org.apereo.cas.client.util.HttpServletRequestWrapperFilter</filter-class> |
![]() |
9.1 | 53 | </filter> |
54 | |||
55 | <filter> | ||
56 | <filter-name>CAS Assertion Thread Local Filter</filter-name> | ||
![]() |
20.1 | 57 | <filter-class>org.apereo.cas.client.util.AssertionThreadLocalFilter</filter-class> |
![]() |
15.1 | 58 | </filter> |
59 | |||
![]() |
9.1 | 60 | <filter-mapping> |
61 | <filter-name>CAS Single Sign Out Filter</filter-name> | ||
62 | <url-pattern>/*</url-pattern> | ||
63 | </filter-mapping> | ||
![]() |
15.1 | 64 | |
![]() |
9.1 | 65 | <filter-mapping> |
66 | <filter-name>CAS Authentication Filter</filter-name> | ||
67 | <url-pattern>/*</url-pattern> | ||
68 | </filter-mapping> | ||
![]() |
2.1 | 69 | |
![]() |
9.1 | 70 | <filter-mapping> |
71 | <filter-name>CAS Validation Filter</filter-name> | ||
72 | <url-pattern>/*</url-pattern> | ||
73 | </filter-mapping> | ||
![]() |
2.1 | 74 | |
![]() |
9.1 | 75 | <filter-mapping> |
76 | <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> | ||
77 | <url-pattern>/*</url-pattern> | ||
78 | </filter-mapping> | ||
![]() |
15.1 | 79 | |
![]() |
9.1 | 80 | <filter-mapping> |
81 | <filter-name>CAS Assertion Thread Local Filter</filter-name> | ||
82 | <url-pattern>/*</url-pattern> | ||
![]() |
19.1 | 83 | </filter-mapping> |
![]() |
15.1 | 84 | |
![]() |
9.1 | 85 | <listener> |
![]() |
20.1 | 86 | <listener-class>org.apereo.cas.client.session.SingleSignOutHttpSessionListener</listener-class> |
![]() |
9.1 | 87 | </listener> |
![]() |
19.1 | 88 | {{/code}} |
![]() |
2.1 | 89 | ))) |
![]() |
19.1 | 90 | 1. Přihlášenou osobu v aplikaci lze pak jednoduše zjistit pomoci((( |
91 | {{code language="java"}} | ||
92 | request.getRemoteUser(); | ||
93 | {{/code}} | ||
94 | ))) | ||
![]() |
20.1 | 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 | ))) | ||
![]() |
7.1 | 103 | 1. Pro odhlášení uživatele z CAS je potřeba přistoupit na url ##https:~/~/www.sso.vsb.cz/logout##.((( |
![]() |
2.1 | 104 | Před odhlášením z CAS je vhodné zrušit session v aplikaci klienta (zaleží to však na konkrétním klientu). |
105 | |||
![]() |
19.1 | 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ý |
![]() |
2.1 | 107 | 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. |
![]() |
3.1 | 108 | |
![]() |
7.1 | 109 | např. ##https:~/~/www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz## |
![]() |
2.1 | 110 | ))) |
![]() |
16.1 | 111 |