Как использовать карту в файле свойств - PullRequest
0 голосов
/ 01 ноября 2019

Как отобразить это в файле свойств?

Я пытаюсь следовать этой документации на Spring Cloud Gateway

Однако мы используем application.properties.

spring:
  cloud:
    gateway:
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: "https://docs.spring.io"
            allowedMethods:
            - GET

Я пробовал разные варианты безрезультатно:

spring.cloud.gateway.globalcors.cors-configurations./**.allowed-origin
spring.cloud.gateway.globalcors.cors-configurations.[/**].allowed-origin

Я получаю исключение:

*************************** Приложение не удалось запустить


Описание:

Не удалось связать свойства в файле 'spring.cloud. gateway.globalcors.cors-configurations.allowed-origins 'to org.springframework.web.cors.CorsConfiguration:

Reason: No converter found capable of converting from type [java.lang.String] to type

[org.springframework.web.cors.CorsConfiguration]

Действие:

Обновление конфигурации вашего приложения

Обратите внимание, что этот код использует Spring Cloud Hoxton.M3. Я понимаю, что можно предположить, что известная реализация в соответствии с Spring Guide может быть ответом, но это не тот случай, так как SC Gateway больше не использует HttpServlet.

Обновление: это работает в соответствии с Marcos Barbero. Очевидно, Eclipse не может понять этот тип данных как свойство. На данный момент вам придется иметь дело с игнорированием ошибки синтаксического анализа.

spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowCredentials=true

Ответы [ 2 ]

1 голос
/ 05 ноября 2019

Я не пробовал, но я думаю, что вы можете использовать это так:

spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins="https://docs.spring.io"
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods[0]=GET

Если это не сработает, попробуйте убрать квадратные скобки из [/**], в результате /**.

0 голосов
/ 01 ноября 2019

Вы не можете установить эти свойства, используя файл свойств. Вместо этого используйте конфигурацию Spring для настройки этих свойств, как показано ниже:

@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/test-javaconfig").allowedOrigins("http://localhost:9000");
            }
        };
    }

Кроме того, этот пост может быть полезен.

...