Я не могу использовать Spring Security LogoutSuccessHandler, но только в моем текущем проекте. Раньше все рабочие правильно, но теперь его не использовали.LogoutSuccessHandler не работает для Spring Security
Вот класс:
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler;
import org.springframework.stereotype.Component;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component("customLogoutSuccessHandler") //or implements LogoutSuccessHandler
public class CustomLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler {
@Override
public void onLogoutSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
System.err.println("LOGOUT HANDLER HERE");
}
}
А вот мой XML конфигурации
<security:http auto-config="false" >
<security:logout logout-url="/logout" success-handler-ref="customLogoutSuccessHandler"/>
<security:form-login login-page="/login" default-target-url="/"/>
<security:csrf/>
</security:http>
Что не так с кодом? метод onLogoutSuccess никогда не запускается, даже если я вышел из системы:
@RequestMapping(value = "/logout")
public String logout(){
SecurityContextHolder.clearContext();
return "redirect:/";
}
Почему?
Возможный дубликат [сеанс сеанса Spring Security не отменен \ [SOLVED \]] (http://stackoverflow.com/questions/29811266/spring-security-logout-session-is -not-invalidated-solve) –