Zdrojový kód wiki CAS Java klient

Version 9.1 by Petr Abrahamczik on 07.02.2019 11:11

Hide last authors
Petr Abrahamczik 2.1 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]].
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.(((
Petr Abrahamczik 8.1 4 {{code language="xml"}}
Petr Abrahamczik 2.1 5 <dependency>
Petr Abrahamczik 9.1 6 <groupId>org.jasig.cas.client</groupId>
7 <artifactId>cas-client-core</artifactId>
8 <version>3.5.1</version>
Petr Abrahamczik 2.1 9 </dependency>
10 {{/code}}
11 )))
Petr Abrahamczik 3.1 12 1. Nakonfigurovat web.xml. V uvedené konfiguraci je nutné nahradit adresu klienta https://klient.vsb.cz s URL našeho serveru.(((
Petr Abrahamczik 9.1 13 {{code language="xml"}}
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>
Petr Abrahamczik 8.1 22
Petr Abrahamczik 9.1 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>
Petr Abrahamczik 2.1 35
Petr Abrahamczik 9.1 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>
Petr Abrahamczik 2.1 48
Petr Abrahamczik 9.1 49 <filter>
50 <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
51 <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
52 </filter>
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>
Petr Abrahamczik 2.1 58
Petr Abrahamczik 9.1 59 <filter-mapping>
60 <filter-name>CAS Single Sign Out Filter</filter-name>
61 <url-pattern>/*</url-pattern>
62 </filter-mapping>
Petr Abrahamczik 2.1 63
Petr Abrahamczik 9.1 64 <filter-mapping>
65 <filter-name>CAS Authentication Filter</filter-name>
66 <url-pattern>/*</url-pattern>
67 </filter-mapping>
Petr Abrahamczik 2.1 68
Petr Abrahamczik 9.1 69 <filter-mapping>
70 <filter-name>CAS Validation Filter</filter-name>
71 <url-pattern>/*</url-pattern>
72 </filter-mapping>
Petr Abrahamczik 2.1 73
Petr Abrahamczik 9.1 74 <filter-mapping>
75 <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
76 <url-pattern>/*</url-pattern>
77 </filter-mapping>
Petr Abrahamczik 2.1 78
Petr Abrahamczik 9.1 79 <filter-mapping>
80 <filter-name>CAS Assertion Thread Local Filter</filter-name>
81 <url-pattern>/*</url-pattern>
82 </filter-mapping>
Petr Abrahamczik 2.1 83
Petr Abrahamczik 9.1 84 <listener>
85 <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
86 </listener>
Petr Abrahamczik 2.1 87 {{/code}}
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ň
Petr Abrahamczik 3.1 90 klient musí důvěřovat certifikátu serveru.
Petr Abrahamczik 7.1 91 1. Pro odhlášení uživatele z CAS je potřeba přistoupit na url ##https:~/~/www.sso.vsb.cz/logout##.(((
Petr Abrahamczik 2.1 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
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ý
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.
Petr Abrahamczik 3.1 96
Petr Abrahamczik 7.1 97 např. ##https:~/~/www.sso.vsb.cz/logout?service=https%3A%2F%2Fklient.vsb.cz##
Petr Abrahamczik 2.1 98 )))
Petr Abrahamczik 3.1 99 1. Přihlášenou osobu v aplikaci lze pak jednoduše zjistit pomoci(((
Petr Abrahamczik 8.1 100 {{code language="java"}}
Petr Abrahamczik 3.1 101 request.getRemoteUser();
102 {{/code}}
103 )))
104