Я ссылаюсь на Spring Документацию по безопасности о настройке защиты CSRF:
Вместо этого по умолчанию Spring Защита Защита CSRF приведет к Доступ HTTP 403 запрещен. Это можно настроить, настроив AccessDeniedHandler для обработки InvalidCsrfTokenException по-разному.
см. здесь: http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#csrf-configure
Я не уверен, как настроить обработчик, чтобы иметь дело с недопустимым токеном CSRF.
private AccessDeniedHandler accessDeniedHandler() {
return new AccessDeniedHandler() {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
// TODO: deal with InvalidCsrfTokenException
response.setStatus(HttpStatus.FORBIDDEN.value());
}
};
}
Я использую angular на стороне клиента для связи с моим приложением Spring в REST.
Каков наилучший способ борьбы с устаревшими/недопустимыми токенами CSRF?
Должен ли я использовать AccessDeniedHandler
, чтобы добавить пользовательский заголовок ответа HTTP, указывающий, что токен CSRF недействителен и обрабатывает это на стороне клиента? Но как я могу запросить новый токен CSRF из JS?
Есть ли другой и лучший способ продолжить, и как я могу
обрабатывать InvalidCsrfTokenException по-другому
?