1 package org.collectionspace.authentication.spring;
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse;
6 import org.springframework.security.saml2.provider.service.authentication.logout.Saml2LogoutRequest;
7 import org.springframework.security.saml2.provider.service.web.authentication.logout.HttpSessionLogoutRequestRepository;
8 import org.springframework.security.saml2.provider.service.web.authentication.logout.Saml2LogoutRequestRepository;
11 * A Saml2LogoutRequestRepository that saves the redirect paramaeter from the logout request to a
12 * request attribute. This allows CSpaceLogoutSuccessHandler to have access to the parameter value
13 * following the logout request to the IdP.
15 public class CSpaceSaml2LogoutRequestRepository implements Saml2LogoutRequestRepository {
16 public static final String REDIRECT_ATTRIBUTE_NAME = "org.collectionspace.authentication.logout.redirect";
18 private HttpSessionLogoutRequestRepository repository = new HttpSessionLogoutRequestRepository();
21 public Saml2LogoutRequest loadLogoutRequest(HttpServletRequest request) {
22 return repository.loadLogoutRequest(request);
26 public void saveLogoutRequest(
27 Saml2LogoutRequest logoutRequest,
28 HttpServletRequest request,
29 HttpServletResponse response)
31 repository.saveLogoutRequest(logoutRequest, request, response);
33 String redirect = request.getParameter("redirect");
35 request.getSession().setAttribute(REDIRECT_ATTRIBUTE_NAME, redirect);
39 public Saml2LogoutRequest removeLogoutRequest(HttpServletRequest request, HttpServletResponse response) {
40 return repository.removeLogoutRequest(request, response);