Hi, I'm beginner in use of Gerrit and Keycloak. I did the follow deployed:
Two VMs, in one, i deployed the docker where I run keycloak.
I used a docker compose file, this it is attached in this post.
In other VM, I deployed a Gerrit with this command.
" docker run -ti --name gerrit -p 8080:8080 -p 8081:8081 -p 29418:29418 -v gerrit-var-etc:/var/gerrit/etc gerritcodereview/gerrit:3.10.0".
I followed this link to do the gerrit deployed for authenticate on keycloak.
https://gerrit.googlesource.com/plugins/saml/+/HEAD/keycloak/README.mdWell, I modified the configuration at the gerrit.config for IPs that the server keycloak.
When I restart the contanner, this don't up.
But in logs show me many errors.
I don't understande theys.
[2024-08-01T17:56:03.419Z] [main] INFO org.eclipse.jetty.util.log : Logging initialized @10962ms to org.eclipse.jetty.util.log.Slf4jLog
[2024-08-01T17:56:03.656Z] [main] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) [Guice/ErrorInjectingConstructor]: IllegalArgumentException: Unable to instantiate front-end HTTP Filter SamlWebFilter
at JettyServer.<init>(JettyServer.java:218)
at JettyModule.configure(JettyModule.java:31)
while locating JettyServer
Learn more:
https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTORCaused by: IllegalArgumentException: Unable to instantiate front-end HTTP Filter SamlWebFilter
at JettyServer.makeContext(JettyServer.java:562)
at JettyServer.makeContext(JettyServer.java:504)
at JettyServer.<init>(JettyServer.java:258)
at JettyServer$$FastClassByGuice$$42adbd3d.GUICE$TRAMPOLINE(<generated>)
at JettyServer$$FastClassByGuice$$42adbd3d.apply(<generated>)
at DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
at ConstructorInjector.provision(ConstructorInjector.java:114)
at ConstructorInjector.construct(ConstructorInjector.java:91)
at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at SingletonScope$1.get(SingletonScope.java:169)
at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
at InternalInjectorCreator.build(InternalInjectorCreator.java:113)
at InjectorImpl.createChildInjector(InjectorImpl.java:240)
at Daemon.createHttpdInjector(Daemon.java:684)
at Daemon.initHttpd(Daemon.java:635)
at Daemon.start(Daemon.java:404)
at Daemon.run(Daemon.java:300)
at AbstractProgram.main(AbstractProgram.java:62)
at java.base/NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/Method.invoke(Method.java:568)
at GerritLauncher.invokeProgram(GerritLauncher.java:251)
at GerritLauncher.mainImpl(GerritLauncher.java:147)
at GerritLauncher.main(GerritLauncher.java:92)
at Main.main(Main.java:30)
Caused by: ConfigurationException: Guice configuration errors:
1) [Guice/MissingImplementation]: No implementation for Set<String> annotated with @AuthHeaders() was bound.
Requested by:
1 : SamlWebFilter.<init>(SamlWebFilter.java:92)
\_ for 5th parameter authHeaders
while locating SamlWebFilter
Learn more:
https://github.com/google/guice/wiki/MISSING_IMPLEMENTATION1 error
======================
Full classname legend:
======================
AuthHeaders: "com.googlesource.gerrit.plugins.saml.AuthHeaders"
SamlWebFilter: "com.googlesource.gerrit.plugins.saml.SamlWebFilter"
========================
End of classname legend:
========================
at InjectorImpl.getProvider(InjectorImpl.java:1174)
at InjectorImpl.getProvider(InjectorImpl.java:1134)
at InjectorImpl.getInstance(InjectorImpl.java:1186)
at JettyServer.makeContext(JettyServer.java:546)
... 28 more
2) [Guice/ErrorInjectingConstructor]: IllegalArgumentException: Unable to instantiate front-end HTTP Filter SamlWebFilter
at JettyServer.<init>(JettyServer.java:218)
at JettyModule.configure(JettyModule.java:31)
at JettyMetrics.<init>(JettyMetrics.java:29)
\_ for 1st parameter jetty
at JettyModule.configure(JettyModule.java:34)
while locating JettyMetrics
Learn more:
https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTORCaused by: IllegalArgumentException: Unable to instantiate front-end HTTP Filter SamlWebFilter
at JettyServer.makeContext(JettyServer.java:562)
at JettyServer.makeContext(JettyServer.java:504)
at JettyServer.<init>(JettyServer.java:258)
at JettyServer$$FastClassByGuice$$42adbd3d.GUICE$TRAMPOLINE(<generated>)
at JettyServer$$FastClassByGuice$$42adbd3d.apply(<generated>)
at DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
at ConstructorInjector.provision(ConstructorInjector.java:114)
at ConstructorInjector.construct(ConstructorInjector.java:91)
at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at SingletonScope$1.get(SingletonScope.java:169)
at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at SingleParameterInjector.inject(SingleParameterInjector.java:40)
at SingleParameterInjector.getAll(SingleParameterInjector.java:60)
at ConstructorInjector.provision(ConstructorInjector.java:113)
at ConstructorInjector.construct(ConstructorInjector.java:91)
at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at SingletonScope$1.get(SingletonScope.java:169)
at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
at InternalInjectorCreator.build(InternalInjectorCreator.java:113)
at InjectorImpl.createChildInjector(InjectorImpl.java:240)
at Daemon.createHttpdInjector(Daemon.java:684)
at Daemon.initHttpd(Daemon.java:635)
at Daemon.start(Daemon.java:404)
at Daemon.run(Daemon.java:300)
at AbstractProgram.main(AbstractProgram.java:62)
at java.base/NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/Method.invoke(Method.java:568)
at GerritLauncher.invokeProgram(GerritLauncher.java:251)
at GerritLauncher.mainImpl(GerritLauncher.java:147)
at GerritLauncher.main(GerritLauncher.java:92)
at Main.main(Main.java:30)
Caused by: ConfigurationException: Guice configuration errors:
1) [Guice/MissingImplementation]: No implementation for Set<String> annotated with @AuthHeaders() was bound.
Requested by:
1 : SamlWebFilter.<init>(SamlWebFilter.java:92)
\_ for 5th parameter authHeaders
while locating SamlWebFilter
Learn more:
https://github.com/google/guice/wiki/MISSING_IMPLEMENTATION1 error
======================
Full classname legend:
======================
AuthHeaders: "com.googlesource.gerrit.plugins.saml.AuthHeaders"
SamlWebFilter: "com.googlesource.gerrit.plugins.saml.SamlWebFilter"
========================
End of classname legend:
========================
at InjectorImpl.getProvider(InjectorImpl.java:1174)
at InjectorImpl.getProvider(InjectorImpl.java:1134)
at InjectorImpl.getInstance(InjectorImpl.java:1186)
at JettyServer.makeContext(JettyServer.java:546)
... 36 more
2 errors
======================
Full classname legend:
======================
AbstractProgram: "com.google.gerrit.pgm.util.AbstractProgram"
ConfigurationException: "com.google.inject.ConfigurationException"
ConstructorBindingImpl$Factory: "com.google.inject.internal.ConstructorBindingImpl$Factory"
ConstructorInjector: "com.google.inject.internal.ConstructorInjector"
Daemon: "com.google.gerrit.pgm.Daemon"
DefaultConstructionProxyFactory$FastClassProxy: "com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy"
DelegatingMethodAccessorImpl: "jdk.internal.reflect.DelegatingMethodAccessorImpl"
GerritLauncher: "com.google.gerrit.launcher.GerritLauncher"
InjectorImpl: "com.google.inject.internal.InjectorImpl"
InternalFactoryToProviderAdapter: "com.google.inject.internal.InternalFactoryToProviderAdapter"
InternalInjectorCreator: "com.google.inject.internal.InternalInjectorCreator"
JettyMetrics: "com.google.gerrit.pgm.http.jetty.JettyMetrics"
JettyModule: "com.google.gerrit.pgm.http.jetty.JettyModule"
JettyServer: "com.google.gerrit.pgm.http.jetty.JettyServer"
JettyServer$$FastClassByGuice$$42adbd3d: "com.google.gerrit.pgm.http.jetty.JettyServer$$FastClassByGuice$$42adbd3d"
Method: "java.lang.reflect.Method"
NativeMethodAccessorImpl: "jdk.internal.reflect.NativeMethodAccessorImpl"
ProviderToInternalFactoryAdapter: "com.google.inject.internal.ProviderToInternalFactoryAdapter"
SamlWebFilter: "com.googlesource.gerrit.plugins.saml.SamlWebFilter"
SingleParameterInjector: "com.google.inject.internal.SingleParameterInjector"
SingletonScope$1: "com.google.inject.internal.SingletonScope$1"
========================
End of classname legend:
========================
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:589)
at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:190)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:113)
at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240)
at com.google.gerrit.pgm.Daemon.createHttpdInjector(Daemon.java:684)
at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:635)
at com.google.gerrit.pgm.Daemon.start(Daemon.java:404)
at com.google.gerrit.pgm.Daemon.run(Daemon.java:300)
at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:62)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:251)
at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:147)
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:92)
at Main.main(Main.java:30)
Can sameone helpe me for this?
Sorry my english, because it is building.