Информация об изменениях

Сообщение Spring Boot Security Localhost от 02.04.2024 11:28

Изменено 03.04.2024 7:23 Aleksei_Lekomtsev

Spring Boot Security Localhost
Добрый день,

как отключить аутентификацию для запросов, которые приходят с localhost?

  @Bean
  public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

    http.authorizeHttpRequests(
        auth -> {
          auth.requestMatchers(new AntPathRequestMatcher("/"))
            .access(
                  ((authentication, object) ->
                      new AuthorizationDecision(
                          new IpAddressMatcher("127.0.0.1").matches(object.getRequest()))));
          auth.anyRequest().authenticated();
        });


Попробовал так, но все равно получаю 401
Еще используется keycloak, но не уверен что в нем дело
Ставил точку останова внутрь matches метода, но почему-то не оставливается
spring boot spring-security
Spring Boot Security Localhost
Добрый день,

Хочется разрешить пользователю с localhost работать с приложением без аутентификации. В тоже время приложение должно работать с аутентификацией когда запрос приходит
от другого хоста. Я пробовал код, что ниже, но безрезультатно. Например, я менял hasIPAddress на 127.0.0.2 и пробовал отправить запрос с Bearer token, но в результате failed(403). С другой стороны я могу отправлять запрос без какого-либо токена если я устанавливаю hasIPAddress как 127.0.0.1 и результат успешен

  @Bean
  public SecurityFilterChain resourceServerFilterChain(HttpSecurity http) throws Exception {
    IpAddressMatcher hasIPAddress = new IpAddressMatcher("127.0.0.1");
    http.authorizeHttpRequests(
        auth -> {
          auth.requestMatchers("/**")
              .access(
                  (authentication, object) ->
                      new AuthorizationDecision(hasIPAddress.matches(object.getRequest())));
          auth.anyRequest().authenticated();
        });
    return http.build();
  }
spring-security spring boot