1 package com.supwisdom.infras.security.reactive.basic;
3 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4 import org.springframework.context.annotation.Bean;
5 import org.springframework.context.annotation.Configuration;
6 import org.springframework.http.HttpMethod;
7 import org.springframework.security.config.web.server.SecurityWebFiltersOrder;
8 import org.springframework.security.config.web.server.ServerHttpSecurity;
9 import org.springframework.security.web.server.SecurityWebFilterChain;
10 import org.springframework.security.web.server.util.matcher.ServerWebExchangeMatchers;
13 @ConditionalOnProperty(name="infras.security.basic.reactive.enabled", havingValue="true")
14 public class BasicWebFluxSecurityConfiguration {
17 public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
19 .securityMatcher(ServerWebExchangeMatchers.pathMatchers("/api/**"))
21 .pathMatchers(HttpMethod.OPTIONS).permitAll()
22 .pathMatchers("/api/public/**", "/api/open/**").permitAll()
23 .pathMatchers("/api/v*/public/**", "/api/v*/open/**").permitAll()
24 .pathMatchers("/api/*/v*/public/**", "/api/*/v*/open/**").permitAll()
25 .pathMatchers("/api/**").authenticated()
26 .anyExchange().authenticated();
28 //http.addFilterAt(webFilter, SecurityWebFiltersOrder.LAST);
31 http.formLogin().disable();
33 http.csrf().disable();