class DefaultWebFluxResourceServerConf {
    @Resource
    private SecurityProperties securityProperties;

    @Resource
    private ServerAuthenticationEntryPoint serverAuthenticationEntryPoint;

    @Resource
    private ServerAccessDeniedHandler serverAccessDeniedHandler;

    @Autowired(required = false)
    private ReactiveAuthorizationManager authorizationManager;

    @Autowired(required = false)
    private ServerAuthenticationSuccessHandler successHandler;

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
        http.csrf(ServerHttpSecurity.CsrfSpec::disable)
                .cors(ServerHttpSecurity.CorsSpec::disable)
                .headers(hSpec -> hSpec.frameOptions(ServerHttpSecurity.HeaderSpec.FrameOptionsSpec::disable))
                .httpBasic(ServerHttpSecurity.HttpBasicSpec::disable)
                .exceptionHandling(e -> {
                    e.authenticationEntryPoint(serverAuthenticationEntryPoint)
                            .accessDeniedHandler(serverAccessDeniedHandler);
                });

        http.authorizeExchange(exchange -> {
            if (securityProperties.getAuth().getHttpUrls().length > 0) {
                exchange.pathMatchers(securityProperties.getAuth().getHttpUrls()).authenticated();
            }
            if (securityProperties.getIgnore().getUrls().length > 0) {
                exchange.pathMatchers(securityProperties.getIgnore().getUrls()).permitAll();
            }
            exchange.pathMatchers(HttpMethod.OPTIONS).permitAll();
            // url 鉴权
            if (authorizationManager != null) {
                exchange.anyExchange().access(authorizationManager);
            } else {
                exchange.anyExchange().authenticated();
            }
        });

        http.addFilterAt(this.getAuthWebFilter(), SecurityWebFiltersOrder.AUTHENTICATION);

        return http.build();
    }

    protected AuthenticationWebFilter getAuthWebFilter() {<FILL_FUNCTION_BODY>}

    protected ReactiveAuthenticationManager getAuthenticationManager() {
        return new OpaqueTokenReactiveAuthenticationManager(this.getOpaqueTokenIntrospector());
    }

    protected ServerAuthenticationConverter getAuthenticationConverter() {
        CustomServerBearerTokenAuthConverter authenticationConverter =
                new CustomServerBearerTokenAuthConverter(securityProperties);
        authenticationConverter.setAllowUriQueryParameter(true);
        return authenticationConverter;
    }

    protected ReactiveOpaqueTokenIntrospector getOpaqueTokenIntrospector() {
        return new CustomReactiveAuthorizationServiceIntrospector();
    }

    protected ServerAuthenticationEntryPointFailureHandler getFailureHandler() {
        ServerAuthenticationEntryPointFailureHandler failureHandler =
                new ServerAuthenticationEntryPointFailureHandler(serverAuthenticationEntryPoint);
        failureHandler.setRethrowAuthenticationServiceException(false);
        return failureHandler;
    }
}

        AuthenticationWebFilter oauth2 = new AuthenticationWebFilter(this.getAuthenticationManager());
        oauth2.setServerAuthenticationConverter(this.getAuthenticationConverter());
        oauth2.setAuthenticationFailureHandler(this.getFailureHandler());
        if (successHandler != null) {
            oauth2.setAuthenticationSuccessHandler(successHandler);
        }
        return oauth2;
    
<no_super_class>