package br.gov.servicos.editor.security;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.DefaultRedirectStrategy;
import org.springframework.security.web.access.AccessDeniedHandlerImpl;
import org.springframework.security.web.csrf.InvalidCsrfTokenException;
import org.springframework.security.web.csrf.MissingCsrfTokenException;
import org.springframework.stereotype.Component;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class CustomAccessDeniedHandler extends AccessDeniedHandlerImpl {
@Override
public void handle(
HttpServletRequest request,
HttpServletResponse response,
AccessDeniedException accessDeniedException
) throws IOException, ServletException {
if (accessDeniedException instanceof InvalidCsrfTokenException ||
accessDeniedException instanceof MissingCsrfTokenException) {
new DefaultRedirectStrategy().sendRedirect(request, response, "/editar/autenticar?sessao");
}
super.handle(request, response, accessDeniedException);
}
}