Spring Security - разрешать только запросы с префиксом - PullRequest
1 голос
/ 26 февраля 2020

Мне нужно защитить все остальные конечные точки на нашем сервере ресурсов, кроме конечных точек, которые начинаются с /unsecured. Поэтому запросы, подобные следующим, должны быть разрешены для всех:

  • /unsecured/foo/bar
  • /unsecured
  • ...

но такие запросы:

  • /foo/unsecured/bar
  • /foo/bar
  • ...

должны требовать аутентификации.

@Configuration
@EnableResourceServer
public class OAuth2ResourceServerConfig extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity security) throws Exception {
        security
            .authorizeRequests(authorizeRequests -> {
                authorizeRequests.antMatchers("unsecured/**").permitAll();
                authorizeRequests.anyRequest().authenticated();
            });
    }
}

Но в приведенной выше конфигурации все конечные точки требуют аутентификации.

Это ответ, который я получаю при попытке доступа к незащищенной конечной точке:

код 401

{
    "error": "unauthorized",
    "error_description": "Full authentication is required to access this resource"
}

1 Ответ

1 голос
/ 26 февраля 2020

premitAll () - это то, что вы ищете. Похоже, вы просто пропустили / перед URL

@Configuration
@EnableResourceServer
public class OAuth2ResourceServerConfig extends ResourceServerConfigurerAdapter {
    @Override
    public void configure(HttpSecurity security) throws Exception {
        security
            .authorizeRequests(authorizeRequests - > {
                authorizeRequests.antMatchers("/unsecured/**").permitAll();
                authorizeRequests.anyRequest().authenticated();
            });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...