У меня есть приложение Spring Boot REST, которое состоит из двух основных частей:
- Пользовательский интерфейс, в котором я хочу защитить вызовы ajax с помощью токена
- общедоступных конечных точек, где я хочу иметьБазовая аутентификация
Насколько я понимаю, я не могу защитить публичные конечные точки с помощью токенов CSRF, поскольку для них требуется сеанс.Проблема в том, что некоторые конечные точки должны быть доступны обоим, так как я могу защитить их с помощью CSRF, когда он используется в пользовательском интерфейсе, и отключить CSRF для базовой аутентификации?
Вот то, что у меня сейчас есть, где яполностью отключить csrf, так что основные работы ...
http.requestMatchers().antMatchers("/form/fill", "/form/fill/*", "/form/fillParams", "/form/fillParams/*").and()
.csrf().disable().authorizeRequests().anyRequest().hasAnyRole(SecurityConfiguration.ROLE_FORMS_AUTHOR,
SecurityConfiguration.ROLE_FORM_FILLER, SecurityConfiguration.ROLE_ADMIN)
.and().httpBasic();
РЕДАКТИРОВАТЬ: Я нашел этот старый ответ, и мне интересно, есть ли способ, которым я могу использовать это для моего случая, но я 'Я до сих пор не уверен, как отличить «локального» пользователя от того, который аутентифицирован с помощью httpBasic ()