Wiki source code of CAS Java klient

Last modified by Petr Abrahamczik on 16.04.2024 10:22

Show last authors
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
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 <dependency>
6 <groupId>org.apereo.cas.client</groupId>
7 <artifactId>cas-client-core</artifactId>
8 <version>4.0.4</version>
9 </dependency>
10 {{/code}}
11 )))
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>
36
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>
69
70 <filter-mapping>
71 <filter-name>CAS Validation Filter</filter-name>
72 <url-pattern>/*</url-pattern>
73 </filter-mapping>
74
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>
88 {{/code}}
89 )))
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##.(((
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
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ý
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.
108
109 např. ##https:~/~/www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz##
110 )))