Как игнорировать определенные конечные точки, используя Spring Security Oauth - PullRequest
0 голосов
/ 05 марта 2020

Я использую Spring security, oauth следующим образом:

@Configuration
@EnableAuthorizationServer
@EnableResourceServer
public class AuthServerOAuth2Config extends AuthorizationServerConfigurerAdapter {

  @Override
  public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients
            .jdbc(jdbcTemplate.getDataSource());

  }

  @Override
  public void configure(AuthorizationServerEndpointsConfigurer configurer) throws Exception {

    configurer.tokenStore(tokenStore())
            .reuseRefreshTokens(true)
            .authenticationManager(authenticationManager)
            .userDetailsService(userDetailsService);

  }

}

Я хочу теперь опубликовать определенные URL-адреса c, чтобы токен не требовался для доступа к этим ресурсам. Например /public/**

Как бы я это сделал? Нужно ли использовать WebSecurityConfigurerAdapter? Спасибо за любую помощь!

ОБНОВЛЕНИЕ

Я добавил WebSecurityConfigurerAdapter, как указано ниже. Так что теперь URL /public/** доступен без каких-либо токенов. Однако все остальные конечные точки больше не доступны и отвечают 403 Forbidden

Ответы [ 3 ]

1 голос
/ 05 марта 2020

Чтобы сделать путь public/** открытым без аутентификации, вы можете настроить WebSecurityConfigurerAdapter следующим образом:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      .authorizeRequests().antMatchers("/public/**").permitAll()
      .and()
      .authorizeRequests().anyRequest().authenticated();
  }
}
0 голосов
/ 10 марта 2020

Вот как я это решил:

public class ResourceServerConfig extends ResourceServerConfigurerAdapter {

  @Override
  public void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers(HttpMethod.GET, "/public/**").permitAll();
    http.authorizeRequests().anyRequest().authenticated();
  }

}
0 голосов
/ 05 марта 2020

у вас должно быть что-то вроде этого

@Override
protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests().antMatchers("/login*").permitAll();

}
...