1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package org.maxkey.web.endpoint;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.maxkey.authn.realm.AbstractAuthenticationRealm;
- import org.maxkey.web.WebConstants;
- import org.maxkey.web.WebContext;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.security.web.savedrequest.SavedRequest;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.servlet.ModelAndView;
- @Controller
- public class LogoutEndpoint {
-
- private static Logger _logger = LoggerFactory.getLogger(LogoutEndpoint.class);
-
- @Autowired
- @Qualifier("authenticationRealm")
- AbstractAuthenticationRealm authenticationRealm;
-
- @RequestMapping(value={"/logout"})
- public ModelAndView logout(HttpServletRequest request, HttpServletResponse response){
- ModelAndView modelAndView = new ModelAndView();
- authenticationRealm.logout(response);
- SavedRequest firstSavedRequest = (SavedRequest)WebContext.getAttribute(WebConstants.FIRST_SAVED_REQUEST_PARAMETER);
- String reLoginUrl=WebContext.getHttpContextPath()+"/login";
- if(firstSavedRequest!=null){
- reLoginUrl= firstSavedRequest.getRedirectUrl();
- }
- _logger.debug("re Login URL : "+ reLoginUrl);
- modelAndView.addObject("reloginUrl",reLoginUrl);
- request.getSession().invalidate();
-
- modelAndView.setViewName("loggedout");
- return modelAndView;
- }
-
- }
|