Coder Social home page Coder Social logo

gocd-keycloak-oauth-authorization-plugin's Introduction

Ola, Eu sou Kleber Rocha (klinux) 👋 👨🏻‍💻

Kleber

👋 Olá! Eu sou Kleber Rocha, um profissional com mais de 20 anos de experiência na área de tecnologia. Nos últimos anos, tenho me dedicado à construção de soluções escaláveis e eficientes, especialmente utilizando (AWS, GCP), Kubernetes, e GitOps. Minha experiência abrange desde a arquitetura de infraestrutura até a implementação de pipelines de CI/CD, utilizando ferramentas como Terraform, ArgoCD. Estou sempre buscando maneiras de automatizar e otimizar processos para melhorar a entrega contínua de software.

Estou entusiasmado para compartilhar meu conhecimento e colaborar com outros entusiastas da tecnologia aqui no Github!

Principais áreas de interesse: AWS, GCP, Kubernetes, Service Mesh, ArgoCD, Terraform, GitOps, CI/CD.

Tambem sou um entusiasta em OpenSource, se quiser me chamar para participar do seu projeto de alguma forma, pode contar comigo.

🚀 Vamos construir algo incrível juntos!

Onde me achar 🌎:

Meus updates professionais no LinkedIn

gocd-keycloak-oauth-authorization-plugin's People

Contributors

klinux avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

gocd-keycloak-oauth-authorization-plugin's Issues

Error 500 when trying to log in

Keycloak 17.0.1

Log:
WARN [qtp923678610-39] HttpChannel:772 - handleException /go/plugin/cd.go.authorization.keycloak/login java.net.MalformedURLException: no protocol:

screenshot

Plugin seems incompatible with latests versions of Keycloak and GoCD

I was trying to follow the instructions to configure Keycloak authentication for GoCD. There was a few difficulties since the terminology evolved in Keycloak since the plugin has been written.

Furthermore I found some of the following problems when trying to use the plugin:

  • The plugin assumes authentication URLs start with /auth but instead it should get the URL from http://localhost:8080/realms/${realm}/.well-known/openid-configuration

  • The plugin requires some scopes that do not exist (groups) in Keycloak 25.0.1, this can be fixed by creating the client scope but would need to be added to the documentation.

Here is the docker compose file I used to conduct my experiment:

docker/compose/gocd.yml 
services:
 keycloak:
  restart: unless-stopped
  image: quay.io/keycloak/keycloak:25.0.1
  ports:
   - "127.0.0.1:8080:8080"
  environment:
   KEYCLOAK_ADMIN: 'admin'
   KEYCLOAK_ADMIN_PASSWORD: 'admin'
   KC_METRICS_ENABLED: 'true'
   KC_HEALTH_ENABLED: 'true'
   ROOT_LOGLEVEL: INFO
  command: start-dev

 gocdserver:
  image: gocd/gocd-server:v24.3.0
  ports:
   - "127.0.0.1:8153:8153"
   - "127.0.0.1:8154:8154"
  environment:
    GOCD_PLUGIN_INSTALL_keycloak-oauth-authorization-plugin: https://github.com/klinux/gocd-keycloak-oauth-authorization-plugin/releases/download/v2.0.0-21-exp/keycloak-oauth-authorization-plugin-2.0.0-21.jar

Plugin uses deprecated extension API version 1.0 (removed in GoCD 23.2.0)

Hiya @klinux - GoCD maintainer courtesy call here as this appears quite a popular plugin for users. 👋

It seems this plugin is using the 1.0 extension API for authorizations.

Rather than intentional, this is possibly historical because it was forked from https://github.com/szamfirov/gocd-okta-oauth-authorization-plugin which was an older plugin (edit: subsequently updated since this github issue was created).

Support for "1.0" will soon be removed in GoCD 23.2.0 as part of clean-up to support gocd/gocd#11629 (functionality also likely of use to this plugin to increase security) Authorization extension API version 2.0 was introduced in GoCD 19.2.0 and was supposed to be removed many years ago, but was probably forgotten.

https://plugin-api.gocd.org/current/#deprecations-across-extensions58

Supports version 2 of Authorization extension API. Version 2 adds the following new messages:

Plugins Capabilities message is enhanced to add a new capability can_get_user_roles.

The authorization extension v1 has been deprecated. This version will be removed in a release scheduled for September 2019. Plugin developers should upgrade their plugins to the latest version.

Although these additional messages are supported on V2, they are only used/required if you want GoCD access token-based authentication to work for users via the plugin, or if the the plugin declares capability can_get_user_roles e.g add on to the below

public class Capabilities {
@Expose
@SerializedName("supported_auth_type")
private final SupportedAuthType supportedAuthType;
@Expose
@SerializedName("can_search")
private final boolean canSearch;
@Expose
@SerializedName("can_authorize")
private final boolean canAuthorize;

Tl;DR - I believe you can likely just declare "2.0" API version compatibility and things will work just fine as the server will assume the plugin does not support user roles, and does not support GoCD access/API token usage. This will work on GoCD versions 19.2.0+ so going back 3.5 years or so.

Unable to re-authenticate user after timeout after session timeout

Hi there,
I have the plugin configured to use keycloak as IDP.
Now after the max. session timeout I am getting the error at the frontend:
Unable to re-authenticate user after timeout.
Smilar to issue #1
I also increased the Access Token Lifespan but this just mitigates the problem to a later point in time...

The first line on the logs bothers me a bit.. failed with error ''. It shows an empty error. Do you have any idea, how to find out what the problem could be?
I have the Keycloak as a working IDP for examples also configured in my grafana instance and the userinfo endpoint works perfectly.

I am using GoCD 20.3.0 and the latest plugin version available.

The following can be found in the logs:

jvm 1 | 2023-02-17 09:10:38,798 ERROR [qtp711437486-34] p.c.g.a.k.c.g.a.k.KeycloakPlugin:127 [plugin-cd.go.authorization.keycloak] - Error while executing request go.cd.authorization.authenticate-user
	2023-02-17T09:10:38.806+01:00	jvm 1 | java.lang.RuntimeException: Api call to `/auth/realms/myTeam/protocol/openid-connect/userinfo` failed with error: ``
	2023-02-17T09:10:38.806+01:00	jvm 1 | at cd.go.authorization.keycloak.KeycloakApiClient.executeRequest(KeycloakApiClient.java:148)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at cd.go.authorization.keycloak.KeycloakApiClient.userProfile(KeycloakApiClient.java:135)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at cd.go.authorization.keycloak.executors.UserAuthenticationRequestExecutor.execute(UserAuthenticationRequestExecutor.java:59)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at cd.go.authorization.keycloak.requests.Request.execute(Request.java:47)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at cd.go.authorization.keycloak.KeycloakPlugin.handle(KeycloakPlugin.java:71)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.infra.DefaultPluginManager.lambda$submitTo$0(DefaultPluginManager.java:134)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.infra.FelixGoPluginOSGiFramework.executeActionOnTheService(FelixGoPluginOSGiFramework.java:208)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.infra.FelixGoPluginOSGiFramework.doOn(FelixGoPluginOSGiFramework.java:164)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.infra.DefaultPluginManager.submitTo(DefaultPluginManager.java:131)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.access.PluginRequestHelper.submitRequest(PluginRequestHelper.java:49)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.plugin.access.authorization.AuthorizationExtension.authenticateUser(AuthorizationExtension.java:260)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.providers.WebBasedPluginAuthenticationProvider.authenticateWithExtension(WebBasedPluginAuthenticationProvider.java:80)
	2023-02-17T09:10:38.806+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.providers.WebBasedPluginAuthenticationProvider.authenticateWithExtension(WebBasedPluginAuthenticationProvider.java:41)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.providers.AbstractPluginAuthenticationProvider.authenticateUser(AbstractPluginAuthenticationProvider.java:118)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.providers.AbstractPluginAuthenticationProvider.reauthenticate(AbstractPluginAuthenticationProvider.java:65)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.attemptAuthentication(AbstractReAuthenticationFilter.java:120)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.performReauthentication(AbstractReAuthenticationFilter.java:89)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.doFilterInternal(AbstractReAuthenticationFilter.java:76)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.InvalidateAuthenticationOnSecurityConfigChangeFilter.doFilterInternal(InvalidateAuthenticationOnSecurityConfigChangeFilter.java:105)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.RememberLastRequestUrlFilter.doFilterInternal(RememberLastRequestUrlFilter.java:36)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.AlwaysCreateSessionFilter.doFilterInternal(AlwaysCreateSessionFilter.java:40)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filters.ModeAwareFilter.doFilter(ModeAwareFilter.java:79)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at com.thoughtworks.go.server.web.BackupFilter.doFilterInternal(BackupFilter.java:79)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
	2023-02-17T09:10:38.807+01:00	jvm 1 | at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at com.thoughtworks.go.server.newsecurity.filterchains.MainFilterChain.doFilter(MainFilterChain.java:79)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at com.thoughtworks.go.server.web.DefaultHeadersFilter.doFilter(DefaultHeadersFilter.java:51)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.Server.handle(Server.java:516)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	2023-02-17T09:10:38.808+01:00	jvm 1 | at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	2023-02-17T09:10:38.809+01:00	jvm 1 | at java.base/java.lang.Thread.run(Unknown Source)

Unable to re-authenticate user after timeout.

I login to gocd using keycloak, after about 5 min I get error in ui:
Unable to re-authenticate user after timeout.
and in logs:

jvm 1    | java.lang.RuntimeException: Api call to `/auth/realms/myrealm/protocol/openid-connect/userinfo` failed with error: `{"error":"invalid_token","error_description":"Token verification failed"}`
jvm 1    | 	at cd.go.authorization.keycloak.KeycloakApiClient.executeRequest(KeycloakApiClient.java:148)
jvm 1    | 	at cd.go.authorization.keycloak.KeycloakApiClient.userProfile(KeycloakApiClient.java:135)
jvm 1    | 	at cd.go.authorization.keycloak.executors.UserAuthenticationRequestExecutor.execute(UserAuthenticationRequestExecutor.java:59)
jvm 1    | 	at cd.go.authorization.keycloak.requests.Request.execute(Request.java:47)
jvm 1    | 	at cd.go.authorization.keycloak.KeycloakPlugin.handle(KeycloakPlugin.java:71)
jvm 1    | 	at com.thoughtworks.go.plugin.infra.DefaultPluginManager.lambda$submitTo$0(DefaultPluginManager.java:134)
jvm 1    | 	at com.thoughtworks.go.plugin.infra.FelixGoPluginOSGiFramework.executeActionOnTheService(FelixGoPluginOSGiFramework.java:208)
jvm 1    | 	at com.thoughtworks.go.plugin.infra.FelixGoPluginOSGiFramework.doOn(FelixGoPluginOSGiFramework.java:164)
jvm 1    | 	at com.thoughtworks.go.plugin.infra.DefaultPluginManager.submitTo(DefaultPluginManager.java:131)
jvm 1    | 	at com.thoughtworks.go.plugin.access.PluginRequestHelper.submitRequest(PluginRequestHelper.java:49)
jvm 1    | 	at com.thoughtworks.go.plugin.access.authorization.AuthorizationExtension.authenticateUser(AuthorizationExtension.java:260)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.providers.WebBasedPluginAuthenticationProvider.authenticateWithExtension(WebBasedPluginAuthenticationProvider.java:80)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.providers.WebBasedPluginAuthenticationProvider.authenticateWithExtension(WebBasedPluginAuthenticationProvider.java:41)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.providers.AbstractPluginAuthenticationProvider.authenticateUser(AbstractPluginAuthenticationProvider.java:118)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.providers.AbstractPluginAuthenticationProvider.reauthenticate(AbstractPluginAuthenticationProvider.java:65)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.attemptAuthentication(AbstractReAuthenticationFilter.java:120)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.performReauthentication(AbstractReAuthenticationFilter.java:89)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.AbstractReAuthenticationFilter.doFilterInternal(AbstractReAuthenticationFilter.java:76)
jvm 1    | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.InvalidateAuthenticationOnSecurityConfigChangeFilter.doFilterInternal(InvalidateAuthenticationOnSecurityConfigChangeFilter.java:105)
jvm 1    | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:208)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.AlwaysCreateSessionFilter.doFilterInternal(AlwaysCreateSessionFilter.java:40)
jvm 1    | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.AbstractSessionReduceIdleTimeoutFilter.doFilterInternal(AbstractSessionReduceIdleTimeoutFilter.java:44)
jvm 1    | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:185)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filters.ModeAwareFilter.doFilter(ModeAwareFilter.java:79)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at com.thoughtworks.go.server.web.BackupFilter.doFilterInternal(BackupFilter.java:79)
jvm 1    | 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
jvm 1    | 	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
jvm 1    | 	at com.thoughtworks.go.server.newsecurity.filterchains.MainFilterChain.doFilter(MainFilterChain.java:79)
jvm 1    | 	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:347)
jvm 1    | 	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:263)
jvm 1    | 	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
jvm 1    | 	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
jvm 1    | 	at com.thoughtworks.go.server.web.DefaultHeadersFilter.doFilter(DefaultHeadersFilter.java:51)
jvm 1    | 	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
jvm 1    | 	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
jvm 1    | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
jvm 1    | 	at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:766)
jvm 1    | 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
jvm 1    | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
jvm 1    | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
jvm 1    | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
jvm 1    | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
jvm 1    | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
jvm 1    | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
jvm 1    | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
jvm 1    | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
jvm 1    | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
jvm 1    | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
jvm 1    | 	at org.eclipse.jetty.server.Server.handle(Server.java:516)
jvm 1    | 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
jvm 1    | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
jvm 1    | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
jvm 1    | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
jvm 1    | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
jvm 1    | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
jvm 1    | 	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
jvm 1    | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
jvm 1    | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
jvm 1    | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
jvm 1    | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
jvm 1    | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
jvm 1    | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
jvm 1    | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
jvm 1    | 	at java.base/java.lang.Thread.run(Unknown Source)```
and I need to login again to gocd.
gocd version: 21.2.0
plugin version: 1.0.3-7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.