Spring WebFlux 5.0.RELEASE и Spring Security 5.0.M5

Я пытаюсь создать веб-сервис с помощью WebFlux. Когда я пытался настроить Spring Security с помощью Spring WebFlux, Spring Security не перехватывала запросы. Моя конфигурация безопасности Spring:

@EnableWebFlux
@EnableWebFluxSecurity
@Configuration
public class WebConfig {
    @Bean
    public MapUserDetailsRepository userDetailsRepository() {
        UserDetails cust =
           User.withUsername("user1").password("password") 
            .roles("USER").build();
        UserDetails admin = 
          User.withUsername("admin1").password("password")
            .roles("ADMIN").build();
        return new MapUserDetailsRepository(cust, admin);
    }

    @Bean
    public SecurityWebFilterChain springWebFilterChain(
        HttpSecurity httpSecurity) {
    return httpSecurity.authorizeExchange().anyExchange().
             authenticated().and().build();
}

}


person Ajay Singh    schedule 31.10.2017    source источник
comment
Как вы указываете аннотации безопасности? Вы делаете это на контроллерах или используете безопасность на уровне методов для обработчиков?   -  person dillius    schedule 31.10.2017
comment
Я не использую аннотацию @Secured, потому что она не будет работать.   -  person Ajay Singh    schedule 01.11.2017
comment
Я видел, как кто-то сталкивался с похожей проблемой: stackoverflow.com/questions/46325632/   -  person Ajay Singh    schedule 01.11.2017


Ответы (2)


Одним из способов является использование метода безопасности. Вам нужно добавить @EnableReactiveMethodSecurity в свой класс конфигурации, а затем защитить методы компонента обработчика с помощью аннотаций, таких как @PreAuthorize("isAuthenticated()")

Вот как мне удалось заставить это работать с Spring Boot 2.0.0.M4, но опять же это может зависеть от того, какую обработку запросов вы выполняете.

person dillius    schedule 01.11.2017

Это проблема при использовании Spring Security с WebFlux. Обходной путь опубликован здесь: https://jira.spring.io/browse/SPR-16144< /а>

person Ajay Singh    schedule 02.11.2017