BenjaminFavre / keycloak-apple-social-identity-provider

Apple Social Identity Provider for Keycloak
Apache License 2.0
108 stars 53 forks source link

Fix 21.0.1 Provider Endpoint Implementation #36

Open ThomasAunvik opened 1 year ago

ThomasAunvik commented 1 year ago

Using the newer version of keycloak, causes this error when attempting to login:

Error Message ``` 2023-03-09T09:25:39.983326749Z 2023-03-09 09:25:39,957 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-36) Uncaught server error: java.lang.NoSuchMethodError: 'void org.keycloak.broker.oidc.OIDCIdentityProvider$OIDCEndpoint.(org.keycloak.broker.oidc.OIDCIdentityProvider, org.keycloak.broker.provider.IdentityProvider$AuthenticationCallback, org.keycloak.models.RealmModel, org.keycloak.events.EventBuilder)' 2023-03-09T09:25:39.983384750Z at fr.benjaminfavre.provider.AppleIdentityProvider$OIDCEndpoint.(AppleIdentityProvider.java:108) 2023-03-09T09:25:39.983392750Z at fr.benjaminfavre.provider.AppleIdentityProvider.callback(AppleIdentityProvider.java:45) 2023-03-09T09:25:39.983397450Z at org.keycloak.services.resources.IdentityBrokerService.getEndpoint(IdentityBrokerService.java:419) 2023-03-09T09:25:39.983402150Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2023-03-09T09:25:39.983406450Z at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 2023-03-09T09:25:39.983410850Z at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2023-03-09T09:25:39.983415250Z at java.base/java.lang.reflect.Method.invoke(Method.java:568) 2023-03-09T09:25:39.983419650Z at org.jboss.resteasy.core.ResourceLocatorInvoker.constructLocator(ResourceLocatorInvoker.java:107) 2023-03-09T09:25:39.983423950Z at org.jboss.resteasy.core.ResourceLocatorInvoker.resolveTargetFromLocator(ResourceLocatorInvoker.java:87) 2023-03-09T09:25:39.983428250Z at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:148) 2023-03-09T09:25:39.983432450Z at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:183) 2023-03-09T09:25:39.983436750Z at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:141) 2023-03-09T09:25:39.983440950Z at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:32) 2023-03-09T09:25:39.983445250Z at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492) 2023-03-09T09:25:39.983449450Z at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261) 2023-03-09T09:25:39.983453651Z at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161) 2023-03-09T09:25:39.983458851Z at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364) 2023-03-09T09:25:39.983495651Z at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164) 2023-03-09T09:25:39.983500151Z at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247) 2023-03-09T09:25:39.983504151Z at io.quarkus.resteasy.runtime.standalone.RequestDispatcher.service(RequestDispatcher.java:73) 2023-03-09T09:25:39.983507951Z at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.dispatch(VertxRequestHandler.java:151) 2023-03-09T09:25:39.983511951Z at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:82) 2023-03-09T09:25:39.983515851Z at io.quarkus.resteasy.runtime.standalone.VertxRequestHandler.handle(VertxRequestHandler.java:42) 2023-03-09T09:25:39.983520051Z at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284) 2023-03-09T09:25:39.983523951Z at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173) 2023-03-09T09:25:39.983527751Z at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140) 2023-03-09T09:25:39.983531751Z at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:84) 2023-03-09T09:25:39.983535651Z at io.quarkus.vertx.http.runtime.StaticResourcesRecorder$2.handle(StaticResourcesRecorder.java:71) 2023-03-09T09:25:39.983539651Z at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284) 2023-03-09T09:25:39.983543551Z at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173) 2023-03-09T09:25:39.983547451Z at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140) 2023-03-09T09:25:39.983551252Z at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:430) 2023-03-09T09:25:39.983555252Z at io.quarkus.vertx.http.runtime.VertxHttpRecorder$6.handle(VertxHttpRecorder.java:408) 2023-03-09T09:25:39.983559152Z at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1284) 2023-03-09T09:25:39.983562952Z at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:173) 2023-03-09T09:25:39.983566852Z at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:140) 2023-03-09T09:25:39.983570852Z at org.keycloak.quarkus.runtime.integration.web.QuarkusRequestFilter.lambda$createBlockingHandler$0(QuarkusRequestFilter.java:82) 2023-03-09T09:25:39.983574852Z at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:576) 2023-03-09T09:25:39.983578752Z at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449) 2023-03-09T09:25:39.983583052Z at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478) 2023-03-09T09:25:39.983587052Z at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29) 2023-03-09T09:25:39.983595052Z at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29) 2023-03-09T09:25:39.983599052Z at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 2023-03-09T09:25:39.983602952Z at java.base/java.lang.Thread.run(Thread.java:833) ```

This just adds the link in between AppleIdentityProvider and OIDCEndpoint as required.

nlsrchtr commented 1 year ago

Hi @ThomasAunvik, I'm also looking into AppleID support for Keycloak and was wondering if you could provide a jar file or some instructions on how to build the jar file from the source code? I'm not really fluent with Maven and the Java build work.

Thanks for your help.