Most likely something to do with this change:
https://github.com/traccar/traccar/commit/fedf122a5db0a60f0b315f595d9e416f72a1d210
What's the easiest way for us to test it?
Same issue reported on our server as well using Google OpenID.
java.security.GeneralSecurityException: Unable to authenticate with the OpenID Connect provider.
at org.traccar.database.OpenIdProvider.getToken(OpenIdProvider.java:150)
at org.traccar.database.OpenIdProvider.handleCallback(OpenIdProvider.java:189)
at org.traccar.api.resource.SessionResource.requestToken(SessionResource.java:167)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:146)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:189)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:244)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:397)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:349)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:358)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:312)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
at org.eclipse.jetty.servlets.DoSFilter.doFilterChain(DoSFilter.java:462)
at org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:317)
at org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:282)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at org.traccar.web.OverrideFilter.doFilter(OverrideFilter.java:50)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1553)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:51)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
at org.eclipse.jetty.server.Server.handle(Server.java:563)
at org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:287)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
at java.base/java.lang.Thread.run(Thread.java:1583)
Yeah, I was able to reproduce it now. It happens any time you're using any proxy.
Please try this version and see if it fixes the issue:
Will give it a try tonight again. Running on docker. Just exchanged the source code URL to the preview build but that did not do the trick "Error: Unable to access jarfile tracker-server.jar".
My mistake the "other" zip was the one to choose. Works like a charm! Thanks a lot.
It worked for me too. All good! Thanx for the quick fix.
hi! for me 6.7.1 update work fine too, but doesn't work with keycloak and issuerurl.
in 6.6 my configuration work fine:
<entry key='openid.force'>true</entry>
<entry key='openid.clientId'>traccar</entry>
<entry key='openid.clientSecret'>secret</entry>
<entry key='openid.issuerUrl'>https://sso.nagaev.biz/realms/home</entry>
<entry key='openid.allowGroup'>traccar_user</entry>
<entry key='openid.adminGroup'>traccar_admin</entry>
but in 6.7.1 I must change issuerurl to auth, token and userinfourl:
<entry key='openid.force'>true</entry>
<entry key='openid.clientId'>traccar</entry>
<entry key='openid.clientSecret'>secret</entry>
<entry key='openid.authUrl'>https://sso.nagaev.biz/realms/home/protocol/openid-connect/auth</entry>
<entry key='openid.tokenUrl'>https://sso.nagaev.biz/realms/home/protocol/openid-connect/token</entry>
<entry key='openid.userInfoUrl'>https://sso.nagaev.biz/realms/home/protocol/openid-connect/userinfo</entry>
<entry key='openid.allowGroup'>traccar_user</entry>
<entry key='openid.adminGroup'>traccar_admin</entry>
work fine, but issuerurl seems better
Please try this version:
Do you have it containerized?
Unfortunately not.
Good afternoon,
with 6.7.0 I get this error with OpenID and KeyCloak 26.2.4.
6.6 working without issues.
My config
<entry key='openid.clientId'>traccar</entry> <entry key='openid.clientSecret'>xxx</entry> <entry key='openid.userInfoUrl'>https://iam.domain.tld/realms/realm/protocol/openid-connect/userinfo</entry> <entry key='openid.authUrl'>https://iam.domain.tld/realms/realm/protocol/openid-connect/auth</entry> <entry key='openid.tokenUrl'>https://iam.domain.tld/realms/realm/protocol/openid-connect/token</entry> <entry key='web.url'>https://tracks.domain.tld</entry> <entry key='openid.force'>true</entry>