2017-10-31 21 views
0

WebFluxを使用してWebサービスを構築しようとしています。 Spring WebFluxでSpring Securityを設定しようとすると、その要求はSpring Securityによって傍受されません。私の春のセキュリティ設定は次のとおりです。Spring WebFlux 5.0.RELEASEとSpring Security 5.0.M5

@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(); 
} 

}

+0

どのようにセキュリティ注釈を指定していますか?あなたはコントローラーでそれをやっているのですか、ハンドラーでメソッドレベルのセキュリティーを使用していますか? – dillius

+0

@Securedアノテーションを使用していないため、動作しません。 –

+0

私は誰かが同様の問題に直面しているのを見ました:https://stackoverflow.com/questions/46325632/how-to-activate-spring-security-in-a-webflux-war-application –

答えて

0

一つの方法は、メソッドのセキュリティを使用することです。これは私がこの春ブーツ2.0.0.M4と協力を得ることができたが、やはりこれはに依存してもよい方法であるように@PreAuthorize("isAuthenticated()")

としてあなたは、あなたのコンフィギュレーションクラスに@EnableReactiveMethodSecurityを追加し、注釈をハンドラコンポーネントのメソッドを確保するために必要なものあなたがやっているリクエスト処理の種類。

関連する問題