Missing Verification for Automatic OIDC Access Token Refreshing and JWT Expiration Claim Parsing
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 72/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- go
- Bereich
- authentication, cli, testing
Rechercherichtung
Beginne in pkg/connectors/microcks_client.go bei refreshAuthToken und untersuche, wie der Ablauf von JWT abläuft und wie Refresh-Anfragen gestellt werden. Verwende einen httptest-Mock-Keycloak-Server, um Fälle für noch gültige, bald ablaufende, abgelaufene und abgelaufene Refresh-Tokens abzudecken. Als erledigt gilt die Aufgabe, wenn das erwartete Refresh-Verhalten verifiziert ist und die neuen Tokens in der lokalen Konfigurations-YAML gespeichert werden, wobei bei Bedarf eine erneute Anmeldung gemeldet wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Go
- Sterne
- 58
- Forks
- 72
- Ø Merge
- 1 T. 11 Std.
- Gemergte PRs (30 T.)
- 27
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microcks/microcks-cli
-
Wrong link to test resultsEvtl. vergeben @SajanBisht hat das vor 3 Tagen übernommen. Offencomponent/cli keep-open kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
microcks/microcks-cli#589 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Default configuration path falls back to the current directory when the home directory cannot be determinedEvtl. vergeben @Sarthak-Shreshtha01 hat das vor 6 Tagen übernommen. Offencomponent/cli kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
microcks/microcks-cli#583 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
microcks test exits with code 1 (contract failure) instead of code 11 (connection) when polling loop times outEvtl. vergeben @ish-g09 hat das vor 5 Tagen übernommen. Offencomponent/cli kind/bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
microcks/microcks-cli#573 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug: YAML parse error in config is silently swallowed, login overwrites all other contextsEvtl. vergeben @Sarthak-Shreshtha01 hat das vor 12 Tagen übernommen. Offencomponent/cli kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
microcks/microcks-cli#572 · 6 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
import-dir uploads secondary artifacts before their primary API definitionEvtl. vergeben @doraem-on hat das vor 18 Tagen übernommen. Offencomponent/cli kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
microcks/microcks-cli#561 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in microcks/microcks-cli
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
devlikeapro/waha#2322 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
validateDeclaredPath lets control characters through into the Gradle init script's Groovy literalOffenagent-butler-finding agent-research bug ready-for-agent
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
jordansmall/spindrift#5821 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
[rmqctl][Bug] Windows build script fails when the output directory is absentEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
apache/rocketmq-dashboard#7243 ·
Maintainer antworten meist innerhalb von 3 Tagen