]> git.aero2k.de Git - tmp/jakarta-migration.git/blob
703fadc77cd74a8141b5eec6cdf5ca1c9e64b3ae
[tmp/jakarta-migration.git] /
1 package org.collectionspace.authentication.spring;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse;
5
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;
9
10 /**
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.
14  */
15 public class CSpaceSaml2LogoutRequestRepository implements Saml2LogoutRequestRepository {
16   public static final String REDIRECT_ATTRIBUTE_NAME = "org.collectionspace.authentication.logout.redirect";
17
18   private HttpSessionLogoutRequestRepository repository = new HttpSessionLogoutRequestRepository();
19
20   @Override
21   public Saml2LogoutRequest loadLogoutRequest(HttpServletRequest request) {
22     return repository.loadLogoutRequest(request);
23   }
24
25   @Override
26   public void saveLogoutRequest(
27     Saml2LogoutRequest logoutRequest,
28     HttpServletRequest request,
29     HttpServletResponse response)
30   {
31     repository.saveLogoutRequest(logoutRequest, request, response);
32
33     String redirect = request.getParameter("redirect");
34
35     request.getSession().setAttribute(REDIRECT_ATTRIBUTE_NAME, redirect);
36   }
37
38   @Override
39   public Saml2LogoutRequest removeLogoutRequest(HttpServletRequest request, HttpServletResponse response) {
40     return repository.removeLogoutRequest(request, response);
41   }
42 }