public void doLogout( HttpServletRequest request, HttpServletResponse response, String... skipHandlerName) throws IOException, ServletException { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { List<LogoutHandler> logoutHandlers = calculateActiveLogoutHandlers(skipHandlerName); for (LogoutHandler h : logoutHandlers) { h.logout(request, response, authentication); } RememberMeServices rms = securityManager.getRememberMeService(); ((LogoutHandler) rms).logout(request, response, authentication); logoutHandler.logout(request, response, authentication); } String redirectUrl = (String) request.getAttribute(LOGOUT_REDIRECT_ATTR); if (StringUtils.hasLength(redirectUrl)) { SimpleUrlLogoutSuccessHandler h = new SimpleUrlLogoutSuccessHandler(); h.setDefaultTargetUrl(redirectUrl); h.onLogoutSuccess(request, response, authentication); return; } logoutSuccessHandler.onLogoutSuccess(request, response, authentication); }
@Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { if (authentication != null) { userDirectoryService.invalidate(authentication.getName()); logger.trace("Logging out user {} ...", authentication.getName()); } else { logger.trace("Logout after session expiration"); } super.onLogoutSuccess(request, response, authentication); }
/** * Clears the security context. This is necessary when cookie based storage is used. * * @param request {@code HttpServletRequest} * @param response {@code HttpServletResponse} * @param authentication {@code Authentication} * @throws IOException only from call to super class * @throws ServletException only from call to super class */ @Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { securityContextService.clearSecurityContext(request, response); super.onLogoutSuccess(request, response, authentication); } }
@Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { if (browserHtmlRequestMatcher.matches(request)) { super.onLogoutSuccess(request, response, authentication); } else if (restLogoutRequestMatcher.matches(request)) { // forward the request on to its usual destination (e.g. /rest/v1/logout) so the correct response is returned request.getRequestDispatcher(request.getRequestURI()).forward(request, response); } else { response.setStatus(HttpStatus.OK.value()); response.getWriter().flush(); } }
@Override public void onLogoutSuccess( HttpServletRequest request, HttpServletResponse response, Authentication authentication ) throws IOException, ServletException { SimpleUrlLogoutSuccessHandler logoutSuccessHandler = new SimpleUrlLogoutSuccessHandler(); //TODO: indicate logout and present special logout site logoutSuccessHandler.setDefaultTargetUrl( "/" ); logoutSuccessHandler.onLogoutSuccess( request, response, authentication ); }
@Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { logger.entry(); if(null != authentication && null != authentication.getDetails()) { try { logger.info("Session invalidated"); request.getSession().invalidate(); } catch (Exception e) { } setDefaultTargetUrl("/login?logout"); super.onLogoutSuccess(request, response, authentication); } }
@Override public void onLogoutSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication) throws IOException, ServletException { removeLoginCookie(request, response, authentication); logoutSuccessHandler.setDefaultTargetUrl(buildDefaultTargetUrl()); logoutSuccessHandler.onLogoutSuccess(request, response, authentication); }
@Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { Connection connection = (Connection) request.getSession().getAttribute(Connection.NAME); try { if (connection != null) { SecurityContext portalSecurityContext = new PortalSecurityContext(connection.getSession()); AppContext.setSecurityContext(portalSecurityContext); PortalSession session = connection.getSession(); if (session != null && session.isAuthenticated()) connection.logout(); } } catch (Exception e) { log.warn("Exception while logout", e); } finally { AppContext.setSecurityContext(null); } request.getSession().invalidate(); super.onLogoutSuccess(request, response, authentication); } }
new SimpleUrlLogoutSuccessHandler(); logoutSuccessHandler.setDefaultTargetUrl(logoutSuccessUrl.toString()); logoutSuccessHandler.onLogoutSuccess(req, res, auth); }) .and()