После того как я создал небольшое Spring Boot 2.2.6 приложение и настроил AWS Cognito в качестве поставщика аутентификации, все работает хорошо. При доступе к любому из URL-адресов приложения меня перенаправляют на Cognito, и после входа приложение работает нормально.
Я пытаюсь добавить некоторые публичные c страницы (/ api / **), которые не требуют любая аутентификация. Сначала я попробовал это:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/**").permitAll(); // This should be permitted for anyone
, но теперь все открыто. Нет безопасности вообще. Упс.
Я изменил его на:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/api/**").permitAll() // This should be permitted for anyone
.anyRequest().authenticated(); // Everything else should be protected
Теперь URL-адрес из белого списка (/ api / **) работает хорошо, пароля нет. Но все другие URL (например, / private) вместо перенаправления меня на страницу входа выдают ошибку 403:
Произошла непредвиденная ошибка (type = Forbidden, status = 403). Доступ запрещен
Кто-нибудь знает, как сохранить исходное поведение (пароль), но при этом несколько URL-адресов доступны анонимно?