Zdrojový kód wiki CAS Java klient
Version 16.1 by Petr Abrahamczik on 07.02.2019 13:53
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 | |
![]() |
15.1 | 3 | 1. Do webové 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.((( |
![]() |
8.1 | 4 | {{code language="xml"}} |
![]() |
2.1 | 5 | <dependency> |
![]() |
9.1 | 6 | <groupId>org.jasig.cas.client</groupId> |
7 | <artifactId>cas-client-core</artifactId> | ||
8 | <version>3.5.1</version> | ||
![]() |
2.1 | 9 | </dependency> |
10 | {{/code}} | ||
11 | ))) | ||
![]() |
16.1 | 12 | 1. Nakonfigurovat ##web.xml##. V uvedené konfiguraci je nutné nahradit adresu klienta ##https:~/~/klient.vsb.cz## s URL 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ř.((( |
![]() |
15.1 | 13 | /private/* |
14 | |||
![]() |
9.1 | 15 | {{code language="xml"}} |
16 | <filter> | ||
17 | <filter-name>CAS Single Sign Out Filter</filter-name> | ||
18 | <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> | ||
19 | <init-param> | ||
20 | <param-name>casServerUrlPrefix</param-name> | ||
21 | <param-value>https://www.sso.vsb.cz</param-value> | ||
22 | </init-param> | ||
![]() |
15.1 | 23 | </filter> |
![]() |
8.1 | 24 | |
![]() |
9.1 | 25 | <filter> |
26 | <filter-name>CAS Authentication Filter</filter-name> | ||
27 | <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> | ||
28 | <init-param> | ||
29 | <param-name>casServerUrlPrefix</param-name> | ||
30 | <param-value>https://www.sso.vsb.cz</param-value> | ||
31 | </init-param> | ||
32 | <init-param> | ||
33 | <param-name>serverName</param-name> | ||
34 | <param-value>https://klient.vsb.cz</param-value> | ||
35 | </init-param> | ||
36 | </filter> | ||
![]() |
2.1 | 37 | |
![]() |
9.1 | 38 | <filter> |
39 | <filter-name>CAS Validation Filter</filter-name> | ||
40 | <filter-class>org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter</filter-class> | ||
41 | <init-param> | ||
42 | <param-name>casServerUrlPrefix</param-name> | ||
43 | <param-value>https://www.sso.vsb.cz</param-value> | ||
44 | </init-param> | ||
45 | <init-param> | ||
46 | <param-name>serverName</param-name> | ||
47 | <param-value>https://klient.vsb.cz</param-value> | ||
48 | </init-param> | ||
49 | </filter> | ||
![]() |
15.1 | 50 | |
![]() |
9.1 | 51 | <filter> |
52 | <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> | ||
53 | <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> | ||
54 | </filter> | ||
55 | |||
56 | <filter> | ||
57 | <filter-name>CAS Assertion Thread Local Filter</filter-name> | ||
58 | <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class> | ||
![]() |
15.1 | 59 | </filter> |
60 | |||
![]() |
9.1 | 61 | <filter-mapping> |
62 | <filter-name>CAS Single Sign Out Filter</filter-name> | ||
63 | <url-pattern>/*</url-pattern> | ||
64 | </filter-mapping> | ||
![]() |
15.1 | 65 | |
![]() |
9.1 | 66 | <filter-mapping> |
67 | <filter-name>CAS Authentication Filter</filter-name> | ||
68 | <url-pattern>/*</url-pattern> | ||
69 | </filter-mapping> | ||
![]() |
2.1 | 70 | |
![]() |
9.1 | 71 | <filter-mapping> |
72 | <filter-name>CAS Validation Filter</filter-name> | ||
73 | <url-pattern>/*</url-pattern> | ||
74 | </filter-mapping> | ||
![]() |
2.1 | 75 | |
![]() |
9.1 | 76 | <filter-mapping> |
77 | <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name> | ||
78 | <url-pattern>/*</url-pattern> | ||
79 | </filter-mapping> | ||
![]() |
15.1 | 80 | |
![]() |
9.1 | 81 | <filter-mapping> |
82 | <filter-name>CAS Assertion Thread Local Filter</filter-name> | ||
83 | <url-pattern>/*</url-pattern> | ||
84 | </filter-mapping> | ||
![]() |
15.1 | 85 | |
![]() |
9.1 | 86 | <listener> |
87 | <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> | ||
88 | </listener> | ||
![]() |
2.1 | 89 | ))) |
![]() |
7.1 | 90 | 1. Pro odhlášení uživatele z CAS je potřeba přistoupit na url ##https:~/~/www.sso.vsb.cz/logout##.((( |
![]() |
2.1 | 91 | Před odhlášením z CAS je vhodné zrušit session v aplikaci klienta (zaleží to však na konkrétním klientu). |
92 | |||
93 | 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ý | ||
94 | 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 | 95 | |
![]() |
7.1 | 96 | např. ##https:~/~/www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz## |
![]() |
2.1 | 97 | ))) |
![]() |
3.1 | 98 | 1. Přihlášenou osobu v aplikaci lze pak jednoduše zjistit pomoci((( |
![]() |
8.1 | 99 | {{code language="java"}} |
![]() |
15.1 | 100 | request.getRemoteUser(); |
![]() |
3.1 | 101 | {{/code}} |
102 | ))) | ||
![]() |
16.1 | 103 |