Сопоставьте метод запроса с Kotlin DSL для обеспечения безопасности Spring

#spring #kotlin #spring-security #kotlin-dsl

#spring #kotlin #spring-безопасность #kotlin-dsl

Вопрос:

Spring Security предоставила Kotlin DSL для упрощения настройки. Вот пример из Spring Blog:

 override fun configure(http: HttpSecurity?) {
    http {
        httpBasic {}
        authorizeRequests {
            authorize("/greetings/**", hasAuthority("ROLE_ADMIN"))
            authorize("/**", permitAll)
        }
    }
}
  

Я хочу разрешить только POST-запрос к определенному пути. В Java вы можете сделать:

 http
  .httpBasic().and()
  .authorizeRequests()
    .antMatchers(HttpMethod.POST, "/greetings").hasRole("ADMIN");
  

Есть примеры использования Kotlin DSL?

Ответ №1:

Задано слишком рано. Похоже, я нашел решение, просмотрев исходный код.

Добавление для дальнейшего использования:

 override fun configure(http: HttpSecurity) {
    http {
        csrf { disable() }
        httpBasic {}
        authorizeRequests {
            authorize(AntPathRequestMatcher("/greetings", HttpMethod.POST.name),  hasRole("ADMIN"))
            authorize("/**", denyAll)
        }
    }
}