Я использую keycloak для обеспечения моего отдыха. Я имею в виду учебник, приведенный here. Я создал остальное и переднюю часть. Теперь, когда я добавляю keycloak на бэкэнд, я получаю ошибку CORS, когда мой передний конец вызывает api call.keycloak CORS фильтр весенний ботинок
Application.java файл в весенней загрузке выглядит как
@SpringBootApplication
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
@Bean
public WebMvcConfigurer corsConfiguration() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/*")
.allowedMethods(HttpMethod.GET.toString(), HttpMethod.POST.toString(),
HttpMethod.PUT.toString(), HttpMethod.DELETE.toString(), HttpMethod.OPTIONS.toString())
.allowedOrigins("*");
}
};
}
}
Свойство keycloak в application.properties файл выглядит как
keycloak.realm = demo
keycloak.auth-server-url = http://localhost:8080/auth
keycloak.ssl-required = external
keycloak.resource = tutorial-backend
keycloak.bearer-only = true
keycloak.credentials.secret = 123123-1231231-123123-1231
keycloak.cors = true
keycloak.securityConstraints[0].securityCollections[0].name = spring secured api
keycloak.securityConstraints[0].securityCollections[0].authRoles[0] = admin
keycloak.securityConstraints[0].securityCollections[0].authRoles[1] = user
keycloak.securityConstraints[0].securityCollections[0].patterns[0] = /api/*
Образец REST API, который я называю
@RestController
public class SampleController {
@RequestMapping(value ="/api/getSample",method=RequestMethod.GET)
public string home() {
return new string("demo");
}
}
свойства keyclayak.json переднего края включают
{
"realm": "demo",
"auth-server-url": "http://localhost:8080/auth",
"ssl-required": "external",
"resource": "tutorial-frontend",
"public-client": true
}
Ошибка CORS, что я получаю
XMLHttpRequest cannot load http://localhost:8090/api/getSample. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 401.
Возможно, вы зададите конкретный вопрос. В противном случае вы можете получить ответы, которые не подходят для вас. – Alexander
Можете ли вы предоставить весь стек? –
На стороне сервера нет ошибок. Следовательно, нет трассировки стека. Ошибка i на стороне клиента, когда мое приложение angularJS делает вызов остальным, я получаю ошибку CORS на консоли браузера – krs8888