java.lang.RuntimeException: необходимо установить «область» в конфигурации

#java #spring #keycloak

#java #spring #keycloak

Вопрос:

Я создал микросервис spring и пытаюсь проверить токен jwt, созданный с помощью keycloak.

Мое приложение.файл yaml содержит следующее свойство keycloak:

  keycloak:
    enabled: true
    auth-server-url: http://localhost:8080/auth}
    realm: another_realm
    realm-key: another_key
    resource: ping-pong
    credentials.secret: another_secret
    principal-attribute: blue
    public-client: false
    ssl-required: external
    cors: true
    autodetect-bearer-only: true
    use-resource-role-mappings: false
    expose-token: true
    security-constraints:
               - authRoles: [ 'ping_pong_user' ]
        securityCollections:
               - name: api
        patterns: [ '/api/*' ]
 

Мой pom-файл содержит зависимость keycloak:

     <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-starter</artifactId>
        <version>11.0.3</version>
    </dependency>
 

Когда я пытаюсь вызвать свои ресурсы api, приложение возвращает ошибку:

     2020-11-30 10:07:03.101 ERROR 12336 --- [.0-18090-exec-1] o.a.c.c.C.[Tomcat].[localhost]           : Exception Processing /api/save

java.lang.RuntimeException: Must set 'realm' in config
    at org.keycloak.adapters.KeycloakDeploymentBuilder.internalBuild(KeycloakDeploymentBuilder.java:57) ~[keycloak-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.KeycloakDeploymentBuilder.build(KeycloakDeploymentBuilder.java:202) ~[keycloak-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver.resolve(KeycloakSpringBootConfigResolver.java:41) ~[keycloak-spring-boot-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.springsecurity.config.KeycloakSpringConfigResolverWrapper.resolve(KeycloakSpringConfigResolverWrapper.java:40) ~[keycloak-spring-security-adapter-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89) ~[keycloak-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.PreAuthActionsHandler.preflightCors(PreAuthActionsHandler.java:100) ~[keycloak-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.PreAuthActionsHandler.handleRequest(PreAuthActionsHandler.java:75) ~[keycloak-adapter-core-11.0.3.jar:11.0.3]
    at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:177) ~[spring-boot-container-bundle-11.0.3.jar:11.0.3]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) ~[tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_241]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_241]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.39.jar:9.0.39]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_241]
 

Какие-либо подсказки?

Комментарии:

1. Привет, ты решил решить свою проблему?

2. ДА. Это была проблема с конфигурацией api gateway

3. Приятно слышать, что это не имеет никакого отношения ни к одному из ответов? 🙂 Тогда, я думаю, вы можете просто удалить вопрос

Ответ №1:

Можете ли вы поделиться своим файлом конфигурации? Я надеюсь, что вы использовали адаптер spring keycloak. Вы также можете проверить, создана ли область в вашем пользовательском интерфейсе Keycloak