Spring Boot и azure B2C — API может быть доступен с использованием аутентификации или определенного IP-адреса.

У меня есть приложение, которое использует аутентификацию для использования API, я хотел бы, чтобы запросы от определенных служб (могут быть IP-адреса) могли получить доступ к API без аутентификации.

См. ниже класс WebSecurityConfiguration:

      @EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests((requests) -> requests.antMatchers("/**").authenticated()).oauth2ResourceServer()
                .jwt()
                .jwtAuthenticationConverter(new AadJwtBearerTokenAuthenticationConverter());
   


    }


    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/v3/api-docs/**",
                "/configuration/ui",
                "/swagger-resources/**",
                "/configuration/security",
                "/swagger-ui.html",
                "/swagger-ui/**",
                "/webjars/**"
                );
        web.ignoring().antMatchers(HttpMethod.OPTIONS,"/**" );


    }

}

Обновление 1:

Я также пробовал это без везения:

        @Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests((requests) ->
                    requests.anyRequest().access("isAuthenticated() or hasIpAddress('127.0.0.1')")).oauth2ResourceServer()
            .jwt()
            .jwtAuthenticationConverter(new AadJwtBearerTokenAuthenticationConverter());

}

0 ответов

Другие вопросы по тегам