[
https://issues.apache.org/jira/browse/ARTEMIS-5827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18059068#comment-18059068
]
Nicolas De Amicis commented on ARTEMIS-5827:
--------------------------------------------
Yes I have edited etc/login.config with this:
{code:java}
activemq {
io.hawt.web.auth.oidc.OidcLoginModule required
debug=true
role-principal-class="org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal";
};{code}
I commented out and now it's working! But this configuration works without
problem on Linux.
> Login with OIDC doesn't work on windows with console >= 1.4.0
> -------------------------------------------------------------
>
> Key: ARTEMIS-5827
> URL: https://issues.apache.org/jira/browse/ARTEMIS-5827
> Project: Artemis
> Issue Type: Bug
> Components: Web Console
> Affects Versions: 1.4.0, 1.5.0
> Reporter: Nicolas De Amicis
> Priority: Major
> Attachments: artemis.profile_sanitized.cmd, artemis_sanitized.log,
> hawtio-oidc_sanitized.properties, screenshot-1.png
>
>
> I configured artemis 2.44.0 with the web console 1.4.0 (OIDC doesn't work
> with the embedded console) with hawtio-oidc.properties and it's working when
> artemis is running under Linux. With the same configuration under Windows,
> there is an error when we are redirected on the console after logged on
> keycloak:
> {noformat}
> INFO [io.hawt.web.auth.AuthConfigurationServlet] OpenID Connection
> integration is enabled
> INFO [io.hawt.web.proxy.ProxyServlet] Proxy servlet is disabled
> INFO [org.apache.activemq.artemis] AMQ241001: HTTP Server started at
> http://localhost:8161
> INFO [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API
> available at http://localhost:8161/console/jolokia
> INFO [org.apache.activemq.artemis] AMQ241004: Artemis Console available at
> http://localhost:8161/console
> INFO [io.hawt.web.auth.keycloak.KeycloakServlet] Keycloak integration is
> disabled
> WARN [io.hawt.system.Authenticator] Login failed due to:
> java.lang.NullPointerException: Cannot invoke
> "io.hawt.web.auth.oidc.OidcConfiguration.refreshPublicKeysIfNeeded()" because
> "this.oidcConfiguration" is null
> at
> io.hawt.web.auth.oidc.OidcLoginModule.validateToken(OidcLoginModule.java:192)
> at
> io.hawt.web.auth.oidc.OidcLoginModule.login(OidcLoginModule.java:91)
> at
> java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:754)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:678)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:676)
> at
> java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
> at
> java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:676)
> at
> java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:587)
> at io.hawt.system.Authenticator.login(Authenticator.java:270)
> at io.hawt.system.Authenticator.doAuthenticate(Authenticator.java:245)
> at io.hawt.system.Authenticator.authenticate(Authenticator.java:216)
> at
> io.hawt.web.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:127)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.filters.ResponseHeadersFilter.doFilter(ResponseHeadersFilter.java:67)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.auth.SessionExpiryFilter.process(SessionExpiryFilter.java:105)
> at
> io.hawt.web.auth.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:60)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:210)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.apache.activemq.artemis.component.JolokiaFilter.doFilter(JolokiaFilter.java:50)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doHandle(ServletHandler.java:526)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:125)
> at
> org.eclipse.jetty.ee9.security.SecurityHandler.handle(SecurityHandler.java:603)
> at
> org.eclipse.jetty.ee9.nested.HandlerWrapper.handle(HandlerWrapper.java:124)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:195)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doHandle(SessionHandler.java:612)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:193)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doHandle(ContextHandler.java:1041)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:162)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doScope(ServletHandler.java:483)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doScope(SessionHandler.java:589)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doScope(ContextHandler.java:962)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:123)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.handle(ContextHandler.java:1723)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1581)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.dispatch(HttpChannel.java:733)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.handle(HttpChannel.java:520)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:3048)
> at
> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1220)
> at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:859)
> at org.eclipse.jetty.server.Server.handle(Server.java:195)
> at
> org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:680)
> at
> org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:411)
> at
> org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1809)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:312)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
> at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120)
> 2025-12-18 11:47:58,088 WARN [io.hawt.system.Authenticator] Login failed due
> to: java.lang.NullPointerException: Cannot invoke
> "io.hawt.web.auth.oidc.OidcConfiguration.refreshPublicKeysIfNeeded()" because
> "this.oidcConfiguration" is null
> at
> io.hawt.web.auth.oidc.OidcLoginModule.validateToken(OidcLoginModule.java:192)
> at
> io.hawt.web.auth.oidc.OidcLoginModule.login(OidcLoginModule.java:91)
> at
> java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:754)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:678)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:676)
> at
> java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
> at
> java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:676)
> at
> java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:587)
> at io.hawt.system.Authenticator.login(Authenticator.java:270)
> at io.hawt.system.Authenticator.doAuthenticate(Authenticator.java:245)
> at io.hawt.system.Authenticator.authenticate(Authenticator.java:216)
> at
> io.hawt.web.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:127)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.filters.ResponseHeadersFilter.doFilter(ResponseHeadersFilter.java:67)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.auth.SessionExpiryFilter.process(SessionExpiryFilter.java:105)
> at
> io.hawt.web.auth.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:60)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:210)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.apache.activemq.artemis.component.JolokiaFilter.doFilter(JolokiaFilter.java:50)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doHandle(ServletHandler.java:526)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:125)
> at
> org.eclipse.jetty.ee9.security.SecurityHandler.handle(SecurityHandler.java:603)
> at
> org.eclipse.jetty.ee9.nested.HandlerWrapper.handle(HandlerWrapper.java:124)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:195)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doHandle(SessionHandler.java:612)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:193)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doHandle(ContextHandler.java:1041)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:162)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doScope(ServletHandler.java:483)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doScope(SessionHandler.java:589)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doScope(ContextHandler.java:962)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:123)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.handle(ContextHandler.java:1723)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1581)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.dispatch(HttpChannel.java:733)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.handle(HttpChannel.java:520)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:3048)
> at
> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1220)
> at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:859)
> at org.eclipse.jetty.server.Server.handle(Server.java:195)
> at
> org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:680)
> at
> org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:411)
> at
> org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1809)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:312)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
> at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120)
> 2025-12-18 11:47:58,109 WARN [io.hawt.system.Authenticator] Login failed due
> to: java.lang.NullPointerException: Cannot invoke
> "io.hawt.web.auth.oidc.OidcConfiguration.refreshPublicKeysIfNeeded()" because
> "this.oidcConfiguration" is null
> at
> io.hawt.web.auth.oidc.OidcLoginModule.validateToken(OidcLoginModule.java:192)
> at
> io.hawt.web.auth.oidc.OidcLoginModule.login(OidcLoginModule.java:91)
> at
> java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:754)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:678)
> at
> java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:676)
> at
> java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
> at
> java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:676)
> at
> java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:587)
> at io.hawt.system.Authenticator.login(Authenticator.java:270)
> at io.hawt.system.Authenticator.doAuthenticate(Authenticator.java:245)
> at io.hawt.system.Authenticator.authenticate(Authenticator.java:216)
> at
> io.hawt.web.auth.AuthenticationFilter.doFilter(AuthenticationFilter.java:127)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.filters.ResponseHeadersFilter.doFilter(ResponseHeadersFilter.java:67)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> io.hawt.web.auth.SessionExpiryFilter.process(SessionExpiryFilter.java:105)
> at
> io.hawt.web.auth.SessionExpiryFilter.doFilter(SessionExpiryFilter.java:60)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:210)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.apache.activemq.artemis.component.JolokiaFilter.doFilter(JolokiaFilter.java:50)
> at
> org.eclipse.jetty.ee9.servlet.FilterHolder.doFilter(FilterHolder.java:202)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1637)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doHandle(ServletHandler.java:526)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:125)
> at
> org.eclipse.jetty.ee9.security.SecurityHandler.handle(SecurityHandler.java:603)
> at
> org.eclipse.jetty.ee9.nested.HandlerWrapper.handle(HandlerWrapper.java:124)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:195)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doHandle(SessionHandler.java:612)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:193)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doHandle(ContextHandler.java:1041)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:162)
> at
> org.eclipse.jetty.ee9.servlet.ServletHandler.doScope(ServletHandler.java:483)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.SessionHandler.doScope(SessionHandler.java:589)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:160)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.doScope(ContextHandler.java:962)
> at
> org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:123)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler.handle(ContextHandler.java:1723)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1581)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.dispatch(HttpChannel.java:733)
> at
> org.eclipse.jetty.ee9.nested.HttpChannel.handle(HttpChannel.java:520)
> at
> org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:3048)
> at
> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1220)
> at org.eclipse.jetty.server.Handler$Sequence.handle(Handler.java:859)
> at org.eclipse.jetty.server.Server.handle(Server.java:195)
> at
> org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:680)
> at
> org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:411)
> at
> org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1809)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:204)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:312)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
> at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:120){noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]