Java lang runtimeexception must set realm in config

Весенний ботинок и брелок

У меня есть файл keycloak.json в папке WEB-INF, но когда я запускаю свое приложение, я получаю следующее исключение:

java.lang.RuntimeException: Must set 'realm' in config 

Полный стек этого исключения:

java.lang.RuntimeException: Must set 'realm' in config at org.keycloak.adapters.KeycloakDeploymentBuilder.internalBuild(KeycloakDeploymentBuilder.java:53) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.KeycloakDeploymentBuilder.build(KeycloakDeploymentBuilder.java:152) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver.resolve(KeycloakSpringBootConfigResolver.java:37) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:88) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.preflightCors(PreAuthActionsHandler.java:107) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.handleRequest(PreAuthActionsHandler.java:79) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:183) ~Java lang runtimeexception must set realm in config at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) [tomcat-embed-core-8.5.5.jar:8.5.5] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.5.jar:8.5.5] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.5.jar:8.5.5] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101] 

Этот код является лишь примером интеграции между Spring boot и Keycloak.

Подскажите, пожалуйста, что я делаю не так?

Спасибо за ваш ответ и время.

2 ответа

Если вы используете адаптер keycloak с пружинной загрузкой 2 или пружинной загрузкой 1.5, вы должны указать ниже свойства в файле application.properties или application.yaml

keycloak.auth-server-url=http://localhost:8180/auth keycloak.realm=abc keycloak.resource=movie-app keycloak.public-client=false keycloak.principal-attribute=preferred_username 

Если ошибка не исчезнет, ​​напишите об ошибке, я поделюсь кодом:)

Несмотря на то, что это хороший и действительный пример, который датируется 2015 годом. Я считаю, что он использует Keycloak 1.2.0, который полностью устарел. Здесь есть множество примеров с Spring. Большинство из них в курсе последних изменений.

Читайте также:  What is div in css with example

Я предлагаю взглянуть на эти примеры и прочитать документы.

Источник

Блог

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:

  org.keycloak keycloak-spring-boot-starter 11.0.3  

Когда я пытаюсь вызвать свои ресурсы 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) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.KeycloakDeploymentBuilder.build(KeycloakDeploymentBuilder.java:202) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver.resolve(KeycloakSpringBootConfigResolver.java:41) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.springsecurity.config.KeycloakSpringConfigResolverWrapper.resolve(KeycloakSpringConfigResolverWrapper.java:40) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.preflightCors(PreAuthActionsHandler.java:100) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.handleRequest(PreAuthActionsHandler.java:75) ~Java lang runtimeexception must set realm in config 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

Источник

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

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

Мой файл application.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:

  org.keycloak keycloak-spring-boot-starter 11.0.3  

Когда я пытаюсь вызвать свои ресурсы 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) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.KeycloakDeploymentBuilder.build(KeycloakDeploymentBuilder.java:202) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.springboot.KeycloakSpringBootConfigResolver.resolve(KeycloakSpringBootConfigResolver.java:41) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.springsecurity.config.KeycloakSpringConfigResolverWrapper.resolve(KeycloakSpringConfigResolverWrapper.java:40) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment(AdapterDeploymentContext.java:89) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.preflightCors(PreAuthActionsHandler.java:100) ~Java lang runtimeexception must set realm in config at org.keycloak.adapters.PreAuthActionsHandler.handleRequest(PreAuthActionsHandler.java:75) ~Java lang runtimeexception must set realm in config 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] 

Источник

Оцените статью