Apicurio-studio: خطأ أثناء نشر API

تم إنشاؤها على ٢٤ يونيو ٢٠١٩  ·  5تعليقات  ·  مصدر: Apicurio/apicurio-studio

يعمل ApiCurio (http ، المنفذ 8080) خلف Nginx (http ، المنفذ 80). يقوم F5 (https) بإعادة توجيه الطلب إلى Nginx. يمكنني ربط https://github.com بنجاح ، ولكن الخطأ " نشر API ".

إصدار KeyCloak: 3.4.3.

يرجى ملاحظة أنني أحصل على نفس الخطأ حتى لو قمت بإزالة F5 و Nginx من الصورة وتعاملت مباشرة مع ApiCurio.

_رسالة الخطأ : -_
image

تبديل التفاصيل : -

io.apicurio.hub.core.exceptions.ServerError: خطأ غير متوقع في الخادم
على io.apicurio.hub.api.rest.impl.AccountsResource.getOrganizations (AccountsResource.java:241)
في io.apicurio.hub.api.rest.impl.AccountsResource $ Proxy $ _ $$ _ WeldClientProxy.getOrganizations (مصدر غير معروف)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (الطريقة الأصلية)
في sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
في sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
في java.lang.reflect.Method.invoke (Method.java:497)
في org.jboss.resteasy.core.MethodInjectorImpl.invoke (MethodInjectorImpl.java:140)
على org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget (ResourceMethodInvoker.java:509)
في org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter (ResourceMethodInvoker.java:399)
في org.jboss.resteasy.core.ResourceMethodInvoker.lambda $ invokeOnTarget $ 0 (ResourceMethodInvoker.java:363)
في org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter (PreMatchContainerRequestContext.java:358)
في org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget (ResourceMethodInvoker.java:365)
في org.jboss.resteasy.core.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:337)
في org.jboss.resteasy.core.ResourceMethodInvoker.invoke (ResourceMethodInvoker.java:310)
في org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:443)
في org.jboss.resteasy.core.SynchronousDispatcher.lambda $ استدعاء 4 دولارات (SynchronousDispatcher.java:233)
في org.jboss.resteasy.core.SynchronousDispatcher.lambda $ 0 $ preprocess $ 0 (SynchronousDispatcher.java:139)
في org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter (PreMatchContainerRequestContext.java:358)
في org.jboss.resteasy.core.SynchronousDispatcher.preprocess (SynchronousDispatcher.java:142)
في org.jboss.resteasy.core.SynchronousDispatcher.invoke (SynchronousDispatcher.java:219)
على org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service (ServletContainerDispatcher.java:227)
على org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:56)
على org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:51)
على javax.servlet.http.HttpServlet.service (HttpServlet.java:791)
على io.undertow.servlet.handlers.ServletHandler.handleRequest (ServletHandler.java:74)
على io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:129)
في io.apicurio.hub.api.security.KeycloakAuthenticationFilter.doFilter (KeycloakAuthenticationFilter.java:72)
على io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61)
على io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131)
في io.apicurio.hub.api.filters.DisableCachingFilter.doFilter (DisableCachingFilter.java:66)
على io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61)
على io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131)
على io.apicurio.hub.api.filters.CorsFilter.doFilter (CorsFilter.java:64)
على io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61)
على io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131)
في io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter (SpanFinishingFilter.java:55)
على io.undertow.servlet.core.ManagedFilter.doFilter (ManagedFilter.java:61)
على io.undertow.servlet.handlers.FilterHandler $ FilterChainImpl.doFilter (FilterHandler.java:131)
على io.undertow.servlet.handlers.FilterHandler.handleRequest (FilterHandler.java:84)
على io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler.java:62)
على io.undertow.servlet.handlers.ServletChain $ 1.handleRequest (ServletChain.java:68)
على io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest (ServletDispatchingHandler.java:36)
في org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest (SecurityContextAssociationHandler.java:78)
على io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43)
في org.keycloak.adapters.undertow.UndertowAuthenticatedActionsHandler.handleRequest (UndertowAuthenticatedActionsHandler.java:66)
في io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest (SSLInformationAssociationHandler.java:132)
في io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest (ServletAuthenticationCallHandler.java:57)
في io.undertow.server.handlers.DisableCacheHandler.handleRequest (DisableCacheHandler.java:33)
على io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43)
في io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest (AuthenticationConstraintHandler.java:53)
في io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest (AbstractConfidentialityHandler.java:46)
في io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest (ServletConfidentialityConstraintHandler.java:64)
في io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest (ServletSecurityConstraintHandler.java:59)
في io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest (AuthenticationMechanismsHandler.java:60)
في io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest (CachedAuthenticatedSessionHandler.java:77)
على io.undertow.security.handlers.NotificationReceiverHandler.handleRequest (NotificationReceiverHandler.java:50)
في io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest (AbstractSecurityContextAssociationHandler.java:43)
على io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43)
في org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest (JACCContextIdHandler.java:61)
على io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43)
في org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest (GlobalRequestControllerHandler.java:68)
في org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest (ServletPreAuthActionsHandler.java:69)
على io.undertow.server.handlers.PredicateHandler.handleRequest (PredicateHandler.java:43)
في io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest (ServletInitialHandler.java:292)
في io.undertow.servlet.handlers.ServletInitialHandler.access 100 دولار (ServletInitialHandler.java:81)
على io.undertow.servlet.handlers.ServletInitialHandler 2. call (ServletInitialHandler.java:138)
على io.undertow.servlet.handlers.ServletInitialHandler 2. call (ServletInitialHandler.java:135)
على io.undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1. اتصل (ServletRequestContextThreadSetupAction.java:48)
على io.undertow.servlet.core.ContextClassLoaderSetupAction $ 1. call (ContextClassLoaderSetupAction.java:43)
على org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda $ قم بإنشاء $ 0 (SecurityContextThreadSetupAction.java:105)
على org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502)
في org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502)
في org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502)
على org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502)
في io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler.java:272)
في io.undertow.servlet.handlers.ServletInitialHandler.access 000 دولار (ServletInitialHandler.java:81)
في io.undertow.servlet.handlers.ServletInitialHandler 1.handleRequest دولار (ServletInitialHandler.java:104)
على io.undertow.server.Connectors.executeRootHandler (Connectors.java:360)
على io.undertow.server.HttpServerExchange $ 1.run (HttpServerExchange.java:830)
في org.jboss.threads.ContextClassLoaderSavingRunnable.run (ContextClassLoaderSavingRunnable.java:35)
في org.jboss.threads.EnhancedQueueExecutor.safeRun (EnhancedQueueExecutor.java:1985)
في org.jboss.threads.EnhancedQueueExecutor $ ThreadBody.doRunTask (EnhancedQueueExecutor.java:1487)
في org.jboss.threads.EnhancedQueueExecutor $ ThreadBody.run (EnhancedQueueExecutor.java:1378)
في java.lang.Thread.run (Thread.java:745)
ناتج عن: io.apicurio.hub.api.connectors.SourceConnectorException: java.io.IOException: استجابة غير متوقعة من Keycloak: 403 :: ممنوع
في io.apicurio.hub.api.connectors.AbstractSourceConnector.getExternalToken (AbstractSourceConnector.java:102)
في io.apicurio.hub.api.github.GitHubSourceConnector.githubClient (GitHubSourceConnector.java:88)
في io.apicurio.hub.api.github.GitHubSourceConnector.getOrganizations (GitHubSourceConnector.java:313)
في io.apicurio.hub.api.github.GitHubSourceConnector $ Proxy $ _ $$ _ WeldClientProxy.getOrganizations (مصدر غير معروف)
على io.apicurio.hub.api.rest.impl.AccountsResource.getOrganizations (AccountsResource.java:239)
... 83 أكثر
سبب: java.io.IOException: استجابة غير متوقعة من Keycloak: 403 :: ممنوع
في io.apicurio.hub.api.security.KeycloakLinkedAccountsProvider.getLinkedAccountToken (KeycloakLinkedAccountsProvider.java:187)
في io.apicurio.hub.api.security.KeycloakLinkedAccountsProvider $ Proxy $ _ $$ _ WeldClientProxy.getLinkedAccountToken (مصدر غير معروف)
في io.apicurio.hub.api.connectors.AbstractSourceConnector.getExternalToken (AbstractSourceConnector.java:94)
... 87 أكثر

سجل المتصفح
image

يرجى إعلامي إذا كنت بحاجة إلى أي معلومات إضافية.

bug question

التعليق الأكثر فائدة

بالنسبة لأولئك الفقراء الذين ينتهي بهم المطاف هنا بسبب الخطأ في سجل keycloak: العميل [apicurio-studio] غير مصرح له باسترداد الرموز المميزة من مزود الهوية [github].

قد يكون دور رمز القراءة مفقودًا في نقطتين:

  1. الأدوار الافتراضية لعميل الوسيط: إضافة وسيط read-token كإعداد افتراضي ؛
  2. المستخدم الحالي: أضف الدور (المستخدمون -> [مستخدم] -> تعيينات الدور). حدد وسيط دور العميل. قم بتعيين دور رمز القراءة.

ال 5 كومينتر

جلالة الملك. يحدث هذا الخطأ عندما يحاول Apicurio استدعاء Keycloak REST API لاسترداد رمز الوصول إلى GitHub الذي يديره Keycloak. هذا الرمز مطلوب حتى يتمكن Apicurio من إجراء مكالمات مصدق عليها إلى GitHub نيابة عن المستخدم المصادق عليه.

لا أعرف سبب استجابة Keycloak مع 403. هل هناك أي تتبعات مكدس في سجل خادم Keycloak؟

_GitHub OAuth ap plication: -_
image

تكوين _GitHub في KeyCloak: -_
image

_Linking my GitHub account: -_
image

_نشر API الخاص بي على GitHub المرتبط
image

_ سجل KeyCloak:

2019-06-25 10: 17: 58،183 WARN [org.keycloak.events] (المهمة الافتراضية 24) النوع = IDENTITY_PROVIDER_RETRIEVE_TOKEN_ERROR ، realmId = داخلي ، clientId = null ، userId = null ، ipAddress = 10.aaa.bbb.ccc ، error = العميل [apicurio-studio] غير مصرح له باسترداد الرموز المميزة من مزود الهوية [github].
2019-06-25 10: 17: 58،184 خطأ [org.keycloak.services.resources.IdentityBrokerService] (المهمة الافتراضية -24) العميل [apicurio-studio] غير مصرح له باسترداد الرموز المميزة من موفر الهوية [github].

هذا على الأرجح لأن عميل apicurio-studio (في Keycloak) يفتقد الدور المطلوب. لا يمكنني الوصول إلى التفاصيل في الوقت الحالي (أنا أسافر) ولكن من الذاكرة هناك دور broker من نوع ما مطلوب. أوه انتظر - يمكنني الحصول على الإعداد من KC محلي قمت بتثبيته. ها هو:

image

تحقق من هذا الإعداد في عالم KC الخاص بك.

EricWittmann شكرا جزيلا لك على الرد على

بالنسبة لأولئك الفقراء الذين ينتهي بهم المطاف هنا بسبب الخطأ في سجل keycloak: العميل [apicurio-studio] غير مصرح له باسترداد الرموز المميزة من مزود الهوية [github].

قد يكون دور رمز القراءة مفقودًا في نقطتين:

  1. الأدوار الافتراضية لعميل الوسيط: إضافة وسيط read-token كإعداد افتراضي ؛
  2. المستخدم الحالي: أضف الدور (المستخدمون -> [مستخدم] -> تعيينات الدور). حدد وسيط دور العميل. قم بتعيين دور رمز القراءة.
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات