Я запускаю экземпляр jHipster с аутентификацией oAuth и включенным CORS на сервере. Я добавил следующий компонент:
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.setAllowedMethods(Arrays.asList(new String[]{"GET", "PUT", "POST", "DELETE", "OPTIONS"}));
source.registerCorsConfiguration("/api/**", config);
source.registerCorsConfiguration("/v2/api-docs", config);
source.registerCorsConfiguration("/oauth/**", config);
return new CorsFilter(source);
}
и добавил .antMatchers (HttpMethod.OPTIONS, "/ oauth / token"). allowAll () в конфигурацию ResourceServerConfiguration.
Когда я пытаюсь аутентифицировать пользователя (используя jHipster, работающий на сервере) из приложения, запущенного локально в браузере, я получаю: Метод запроса: ОПЦИИ - Код состояния: 401 Неавторизовано.
Кажется, CORS не настроен должным образом для обработки запросов POST предполетной аутентификации.
Я попытался реализовать некоторые решения, предложенные на Spring Data Rest and Cors и Spring Data Rest и Cors безрезультатно.
Это что-то особенное, что можно сделать в jHipster, чтобы включить аутентификацию для работы из браузера или приложения (не запущенного на сервере jhipster)?