Vaadin 24 会阻止对 REST 端点的请求,尽管有额外的安全配置

问题描述 投票:0回答:1

尽管我的 REST 端点有这个额外的配置:

    @Configuration
    @Order(1)
    public static class RestSecurityConfig {
        @Bean
        public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
            http
                    .csrf(csrf -> csrf.ignoringRequestMatchers(new AntPathRequestMatcher("/api/**")))
                    // .securityMatcher("/api/**")
                    .authorizeHttpRequests((authz) -> authz
                            .requestMatchers(antMatcher("/api/**")).permitAll()
                    );
            return http.build();
        }

        @Bean(name = "mvcHandlerMappingIntrospector")
        public HandlerMappingIntrospector mvcHandlerMappingIntrospector() {
            return new HandlerMappingIntrospector();
        }
    }

使用 @Order(1) 和为前端扩展 VaadinWebSecurity 的安全配置,我在邮递员请求上得到此响应。

我已经尝试了在 Vaadin 论坛和 Stack Overflow 上找到的所有内容,但我无法绕过这个回复。另外,在 Vaadin 的 SecurityConfig 中添加 /api/** 的 requestmatchers 也没有帮助。

一些附加信息: 我的后端使用 Webflux,Spring Boot v3.2.0。

你们中有人有其他想法吗,我的项目已经被这个问题阻止了两天了。

spring-security vaadin
1个回答
0
投票

这不是安全问题,而是 Vaadin 本身的问题。

仔细看看结果:

  • 状态200
  • Vaadin Bootstrap HTML

如果你不想对抗这个,你要么把瓦丁从 根:

vaadin.urlMapping=/my_mapping/*

https://vaadin.com/docs/latest/integrations/spring/configuration#using-spring-boot-properties

或者您可以(自 23.3 起)从 Vaadin servlet 中排除要处理的 URL:

可以使用 vaadin.exclude-urls 属性以逗号分隔字符串的形式配置不应由 Vaadin servlet 处理的 URL 模式列表。

# application.properties
vaadin.exclude-urls=/swagger-ui/**,/custom-service/**

https://vaadin.com/docs/v23/integrations/spring/configuration#prevent-handling-of-specific-urls

© www.soinside.com 2019 - 2024. All rights reserved.