Keycloak Spring Multitenant Null Pointer Исключение - PullRequest
0 голосов
/ 20 марта 2019

Исходный код от: https://github.com/ineat/spring-keycloak-multitenant

Запущен Keycloak и добавлены области, как указано в файле readme.

Обновлены коды Json Keycloak в соответствующих местах.

ЗапущеноSpring Project.

Получил следующие исключения при вызове "http://localhost:8081/multitenant":

2019-03-20 18: 34: 28.195 ОШИБКА 25640 --- [nio-8081-exec-1] oaccC [Tomcat]. [Localhost]: обработка исключений / мультитенант

2019-03-20 18: 34: 28.248 ОШИБКА 25640 --- [nio-8081-exec-1] oaccC[. [. [/]. [dispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] выдал исключение

2019-03-20 18: 34: 28.249 ОШИБКА 25640 --- [nio-8081-exec-1] oaccC [Tomcat]. [localhost]: ErrorPage обработки исключения [errorCode = 0, location = / error]

2019-03-20 18: 34: 28.251 ОШИБКА 25640 --- [nio-8081-exec-1] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] выбросило исключение

2019-03-20 18: 34: 28.252 ОШИБКА 25640 -- [nio-8081-exec-1] oaccC[Tomcat]. [Localhost]: ErrorPage обработки исключения [errorCode = 0, location = / error]

2019-03-20 18: 34: 28.506 ОШИБКА 25640 --- [nio-8081-exec-2] oaccC [Tomcat]. [localhost]: обработка исключений /favicon.ico

2019-03-20 18: 34: 28.511 ОШИБКА 25640 --- [nio-8081-exec-2] oaccC [. [. [/]. [dispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] выдало исключение

2019-03-20 18: 34: 28.512 ОШИБКА 25640 --- [nio-8081-exec-2] oaccC [Tomcat]. [localhost]: ErrorPage обработки исключения [errorCode = 0, location = / error]

2019-03-20 18: 34: 28.514 ОШИБКА 25640 --- [nio-8081-exec-2] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] выдал исключение

2019-03-20 18: 34: 28.515 ОШИБКА 25640 --- [nio-8081-exec-2] oaccC [Tomcat]. [localhost]: ошибка обработки обработки ErrorPage [errorCode = 0, location = / error]

java.lang.NullPointerException: ноль в java.util.concurrent.ConcurrentHashMap.get (ConcurrentHashMap.java:936) ~[na: 1.8.0_191] в java.util.concurrent.ConcurrentHashMap.containsKey (ConcurrentHashMap.java:964) ~ [na: 1.8.0_191] в com.ineat.spring.keycloak.multitenant.HeaderBasedConfigResolver.resolverRjSolverRavolver: 21) ~ [classes /: na] в org.keycloak.adapters.AdapterDeploymentContext.resolveDeployment (AdapterDeploymentContext.java:88) ~ [keycloak-adapter-core-4.4.0.Final.jar: 4.4.0.Final] вorg.keycloak.adapters.PreAuthActionsHandler.preflightCors (PreAuthActionsHandler.java:107) ~ [keycloak-adapter-core-4.4.0.Final.jar: 4.4.0.Final] в org.keycloak.adapters.PreAuthActionsHandler.handleRequestHeler.java: 79) ~ [keycloak-adapter-core-4.4.0.Final.jar: 4.4.0.Final] в org.keycloak.adapters.springsecurity.filter.KeycloakPreAuthActionsFilter.doFilter (KeycloakPreAuthActionsFilter.java:81) ~ [keycloak-spring-security-adapter-4.4.0.Final.jar: 4.4.0.Final] в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:334) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:101) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:334) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:101) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.(FilterChainProxy.java:334) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] вorg.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter (SecurityContextPersistenceFilter.java:105) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:334) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:101) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter (FilterChainProxy.java:334) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.security.web.FilterChainProxy.doFilterInternal (FilterChainProxy.java:215) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.security.web.FilterChainProxy.doFilter (FilterChainProxy.java:178) ~ [spring-security-web-5.0.9.RELEASE.jar: 5.0.9.RELEASE] в org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate (DelegatingFilterProxy.java:357) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.filter.DelegatingFilterProxy.doFilter (DelegatingFilterProxy.java:270) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationDispatcher.invoke (ApplicationDispatcher.java:728) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationDispatcher.processRequest (ApplicationDispatcher.java:472) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationDispatcher.doForward (ApplicationDispatcher.java:395) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationDispatcher.forward (ApplicationDispatcher.java:316) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardHostValve.custom (StandardHostValve.java:395) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardHostValve.status (StandardHostValve.java:254) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardHostValve.throwable (StandardHostValve.java:349) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:175) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:81) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:87) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:800) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:806) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1498) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) [tomcat-embed-core-8.5.34.jar: 8.5.34] в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) [na: 1.8.0_191] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) [na: 1.8.0_191] в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61)[tomcat-embed-core-8.5.34.jar: 8.5.34] на java.lang.Thread.run (Thread.java:748) [na: 1.8.0_191]

Пожалуйста, советуйтеесли есть еще какие-либо конфигурации / любые ошибки, которые я должен исправить.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 марта 2019

Упомянутое вами приложение весенней загрузки разрешает и загружает конфигурацию keycloak для мультитенанта на основе поля заголовка, т.е. "realm: ORGA1".

но не уверен, почему вы звоните http://localhost:8081/multitenant

Вы должны получить токен для требуемого арендатора, а затем вызвать API, передав нужного арендатора в заголовок запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...