在令牌端点spring boot的请求参数中添加'}'时获取CORS

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

这是我的网关配置。

spring:
  cloud:
    gateway:
      default-filters:
        - DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin, RETAIN_FIRST
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: '*'
            allowed-methods:
              - GET
              - POST
              - PUT
              - PATCH
              - DELETE
            allowed-headers: "*"
            
      routes:
        # Authorization server route
        - id: authorization_server
          predicates:
            - Path=/oauth/**
          uri: http://127.0.0.1:12001
          metadata:
            response-timeout: 10000
            connect-timeout: 10000

一切正常!但是当在密码中添加“{”时,会出现 cors 错误。 以下错误来自前端- enter image description here

我已经尝试为 '}' -> %7D 或 '{' -> %7B 添加编码值,效果很好。但我认为,这不是一个好的解决方案,因为我必须处理所有特殊角色。请帮我找到解决这个问题的方法。

java spring-boot cors api-gateway
1个回答
0
投票

通常建议对不属于非保留集的所有字符(字母数字、“-”、“.”、“_”、“~”)进行百分比编码,以避免一些与 http 相关的问题,例如 CORS。

我还看到您在 url 参数中发送用户凭据(用户名、密码),这是一种不好的做法,因此我假设您正在使用 GET http 方法,对于如此重要的数据,我建议使用 POST http 方法并在请求正文中发送数据。

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