Missing Verification for Automatic OIDC Access Token Refreshing and JWT Expiration Claim Parsing
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 72/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- go
- Domínio
- authentication, cli, testing
Direção de pesquisa
Comece em pkg/connectors/microcks_client.go, em refreshAuthToken, e inspecione como a expiração dos JWT é analisada e como as solicitações de refresh são feitas. Use um servidor Keycloak simulado com httptest para cobrir os casos de tokens novos, próximos de expirar, expirados e refresh tokens expirados. Está concluído quando o comportamento esperado de refresh for verificado e os novos tokens forem salvos no YAML de configuração local, informando que é necessário fazer login novamente quando exigido.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Describe the bug
-
Location: pkg/connectors/microcks_client.go ->
refreshAuthToken -
Detailed Description:
When you run the CLI for a long time (like keeping it active in the background), the security token it got when you logged in will eventually expire. To prevent commands from failing, we have code that reads the cached security token, parses it to see when it expires, and automatically requests a new one from the server if it's running out of time.Currently, we have zero tests checking this check-and-refresh logic. If a bug is introduced here, the CLI will suddenly stop working after a while and throw unauthorized errors (like HTTP 401) out of nowhere. We need to make sure the token checks are accurate and that the refresh requests are triggered correctly.
-
Test Requirements:
- Verify that a valid, fresh token does not trigger a refresh.
- Verify that a token close to expiry or already expired triggers the refresh server call.
- Check that the CLI successfully updates the local configuration file with the new token.
- Make sure the CLI handles cases where the refresh token itself has expired and tells the user to log in again.
Simulation Diagram
sequenceDiagram
autonumber
actor Test as Test Runner
participant MC as microcksClient
participant mockKC as Mock Keycloak Server (httptest)
Test->>MC: Trigger refreshAuthToken() with Expired JWT
activate MC
MC->>MC: Parse JWT Claims & Detect Expiration (exp <= now)
Note over MC: Expiration detected. Initiating refresh flow...
MC->>mockKC: POST /protocol/openid-connect/token (refresh_token grant)
activate mockKC
mockKC-->>MC: HTTP 200 OK (New Auth & Refresh Tokens)
deactivate mockKC
MC->>MC: Save new tokens to localconfig YAML file
MC-->>Test: Success (Token Refreshed)
deactivate MC
- Linguagem predominante
- Go
- Estrelas
- 58
- Forks
- 72
- Merge médio
- 1d 11h
- PRs com merge (30d)
- 27
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microcks/microcks-cli
-
Wrong link to test resultsTalvez já em andamento @SajanBisht assumiu há 5 dias. Abertacomponent/cli keep-open kind/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
microcks/microcks-cli#589 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
Default configuration path falls back to the current directory when the home directory cannot be determinedTalvez já em andamento @Sarthak-Shreshtha01 assumiu há 8 dias. Abertacomponent/cli kind/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
microcks/microcks-cli#583 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
-
microcks test exits with code 1 (contract failure) instead of code 11 (connection) when polling loop times outTalvez já em andamento @ish-g09 assumiu há 7 dias. Abertacomponent/cli kind/bug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
microcks/microcks-cli#573 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug: YAML parse error in config is silently swallowed, login overwrites all other contextsTalvez já em andamento @Sarthak-Shreshtha01 assumiu há 14 dias. Abertacomponent/cli kind/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
microcks/microcks-cli#572 · 6 comentários ·
Mantenedores costumam responder em até 1 dia
-
import-dir uploads secondary artifacts before their primary API definitionTalvez já em andamento @doraem-on assumiu há 20 dias. Abertacomponent/cli kind/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
microcks/microcks-cli#561 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de microcks/microcks-cli
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
goharbor/terraform-provider-harbor#655 · 1 comentário ·
-
bug needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
syncthing/syncthing#10935 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
docker/sbx-releases#737 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
area/manager needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
kyma-project/telemetry-manager#3922 ·
Mantenedores costumam responder em até 1 dia