1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.client.console.pages;
20
21 import java.net.URLEncoder;
22 import java.nio.charset.StandardCharsets;
23 import java.util.Optional;
24 import org.apache.syncope.client.ui.commons.SAML2SP4UIConstants;
25 import org.apache.wicket.Session;
26 import org.apache.wicket.markup.html.WebPage;
27 import org.apache.wicket.request.UrlUtils;
28 import org.apache.wicket.request.cycle.RequestCycle;
29 import org.apache.wicket.request.http.handler.RedirectRequestHandler;
30 import org.apache.wicket.request.mapper.parameter.PageParameters;
31
32 public class SAML2SPBeforeLogout extends WebPage {
33
34 private static final long serialVersionUID = 4666948447239743855L;
35
36 public SAML2SPBeforeLogout(final PageParameters parameters) {
37 super(parameters);
38
39 String queryString = Optional.ofNullable(
40 Session.get().getAttribute(SAML2SP4UIConstants.SAML2SP4UI_IDP_ENTITY_ID)).
41 map(idp -> "?" + SAML2SP4UIConstants.SAML2SP4UI_IDP_ENTITY_ID
42 + "=" + URLEncoder.encode(idp.toString(), StandardCharsets.UTF_8)).
43 orElse("");
44
45 RequestCycle.get().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(
46 UrlUtils.rewriteToContextRelative(
47 SAML2SP4UIConstants.URL_CONTEXT + "/logout" + queryString,
48 RequestCycle.get())));
49 }
50 }