как я могу добавить несколько конфигураций CORS, если я хочу использовать свой API для двух разных приложений? - PullRequest
0 голосов
/ 10 июля 2020

Мое приложение предназначено для обычных пользователей и администраторов. По этой причине я хочу использовать CORS для одного и того же API с разными конфигурациями. Надеюсь, этот код поможет мне лучше объяснить мою идею.

@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer()
{
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("http://localhost:3000",
                            "https://example.com")
                    .allowedOrigins("http://localhost:8000",
                            "https://admin.example.com")
                    .allowedMethods("GET", "POST", "PUT", "DELETE");
        }

Мне нужно разрешить субдомену администратора выполнять методы PUT и DELETE, но я не хочу, чтобы основной домен делал это. Это просто в целях безопасности. Предполагается, что сайт администратора может добавлять и редактировать данные, но основной домен предназначен только для предварительного просмотра и POST в случае покупки.

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

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Вы можете добавить несколько конфигураций, например:

registry.addMapping("/admin/**")
                    .allowedOrigins("http://localhost:3000",
                            "https://example.com")
                    .allowedOrigins("http://localhost:8000",
                            "https://admin.example.com")
                    .allowedMethods("GET", "POST", "PUT", "DELETE");

registry.addMapping("/whatever/**")
                    .allowedOrigins("http://localhost:3000",
                            "https://example.com")
                    .allowedOrigins("http://localhost:8000",
                            "https://admin.example.com")
                    .allowedMethods("GET", "POST");
0 голосов
/ 10 июля 2020

Вы можете просто добавить разные аннотации @CrossOrigin к методам разных контроллеров.

...