【问题标题】:CORS with Spring Boot - restrict GET requests to certain domains带有 Spring Boot 的 CORS - 将 GET 请求限制到某些域
【发布时间】:2019-04-17 22:10:53
【问题描述】:

我正在使用 Spring Boot,并且希望仅限制来自某些域的 HTTP GET 请求。例如,我想只接受来自预定义域列表的请求(例如https://www.frontend.comhttps://www.test-frontend.com)。我怎样才能实现这样的功能?

我预计会遇到 CORS 问题,但这些不适用于 GET 请求。有什么想法吗?

【问题讨论】:

标签: spring-boot get


【解决方案1】:
public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
            .allowedOrigins("https://www.frontend.com", "https://www.test-frontend.com")
            .allowedMethods("GET");
    }

参考:https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/cors.html

【讨论】:

    【解决方案2】:

    首先.allowedMethods 用于允许方法,因此如果您不想允许"GET",则将所有其他方法放入但不要放入 GET 方法,如下所示:

    .allowedMethods("PUT", "DELETE", "PATCH")
    

    其次,您不能 CORS by non-webapp 客户端,如 curl 或 Postman,任何非 Web 应用程序客户端。

    【讨论】:

    • 我有类似的配置。我使用的是 Postman,这就是问题所在。
    猜你喜欢
    • 2019-12-26
    • 2020-11-09
    • 2018-10-05
    • 2016-05-05
    • 1970-01-01
    • 2020-07-12
    • 2013-12-05
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多