mirror of
https://github.com/lukaszraczylo/traefikoidc.git
synced 2026-06-05 22:44:17 +00:00
feat(lib): add (*TraefikOidc).Ready() metadata-discovery readiness accessor
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package traefikoidc
|
||||
|
||||
// Ready reports whether the middleware has completed at least one successful
|
||||
// OIDC provider metadata discovery. Used by external supervisors (e.g. the
|
||||
// oidcgate /readyz endpoint) to gate traffic until the IdP discovery doc
|
||||
// has been fetched and the authorization endpoint is known.
|
||||
func (t *TraefikOidc) Ready() bool {
|
||||
t.metadataMu.RLock()
|
||||
defer t.metadataMu.RUnlock()
|
||||
return t.authURL != ""
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package traefikoidc
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestReady_FalseBeforeMetadata(t *testing.T) {
|
||||
tr := &TraefikOidc{}
|
||||
if tr.Ready() {
|
||||
t.Fatal("Ready() should be false before metadata discovery")
|
||||
}
|
||||
}
|
||||
|
||||
func TestReady_TrueAfterAuthURLSet(t *testing.T) {
|
||||
tr := &TraefikOidc{}
|
||||
tr.metadataMu.Lock()
|
||||
tr.authURL = "https://idp.example/authorize"
|
||||
tr.metadataMu.Unlock()
|
||||
if !tr.Ready() {
|
||||
t.Fatal("Ready() should be true once authURL is populated")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user