#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)
}
}
}