CORS
Из соображений безопасности браузеры не разрешают сетевые вызовы JavaScript к ресурсам за пределами текущего источника. Cross-Origin Resource Sharing или CORS снимает это ограничение, поскольку позволяет указать разрешенные междоменные запросы.
По умолчанию все запросы к REST API из разных источников разрешены. Чтобы ограничить список источников, определите свойство приложения jmix.cors.allowed-origins и другие свойства CORS.
Настройки CORS автоматически применяются к следующим URL-адресам:
-
/rest/**
-
/oauth/**
-
Шаблоны URL, определенные в свойстве jmix.rest.authenticated-url-patterns.
Если вы хотите применить настройки CORS к другому URL-адресу, определите следующий бин (это можно сделать в основном классе приложения):
@Bean
public WebSecurityConfigurerAdapter mySecurityConfigurerAdapter() {
return new WebSecurityConfigurerAdapter() {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.requestMatchers(requestMatchers ->
requestMatchers.antMatchers("/myapi/hello")
)
.cors(Customizer.withDefaults())
.authorizeRequests(authorize ->
authorize.anyRequest().permitAll()
);
}
};
}
Чтобы заменить предоставленную Jmix конфигурацию CORS по умолчанию, зарегистрируйте бин с именем corsConfigurationSource
в своем проекте. В этом случае упомянутые выше свойства работать не будут.
Дополнительные сведения о CORS см. в документации по безопасности Spring.