mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
fix: UI should re-trigger SSO login if SSO JWT token expires (#2891)
This commit is contained in:
committed by
GitHub
parent
aea2a51eeb
commit
f253fcfa86
2
Procfile
2
Procfile
@@ -1,6 +1,6 @@
|
||||
controller: sh -c "FORCE_LOG_COLORS=1 ARGOCD_FAKE_IN_CLUSTER=true go run ./cmd/argocd-application-controller/main.go --loglevel debug --redis localhost:${ARGOCD_E2E_REDIS_PORT:-6379} --repo-server localhost:${ARGOCD_E2E_REPOSERVER_PORT:-8081}"
|
||||
api-server: sh -c "FORCE_LOG_COLORS=1 ARGOCD_FAKE_IN_CLUSTER=true go run ./cmd/argocd-server/main.go --loglevel debug --redis localhost:${ARGOCD_E2E_REDIS_PORT:-6379} --disable-auth=${ARGOCD_E2E_DISABLE_AUTH:-'true'} --insecure --dex-server http://localhost:${ARGOCD_E2E_DEX_PORT:-5556} --repo-server localhost:${ARGOCD_E2E_REPOSERVER_PORT:-8081} --port ${ARGOCD_E2E_APISERVER_PORT:-8080} --staticassets ui/dist/app"
|
||||
dex: sh -c "go run ./cmd/argocd-util/main.go gendexcfg -o `pwd`/dist/dex.yaml && docker run --rm -p ${ARGOCD_E2E_DEX_PORT:-5556}:${ARGOCD_E2E_DEX_PORT:-5556} -v `pwd`/dist/dex.yaml:/dex.yaml quay.io/dexidp/dex:v2.14.0 serve /dex.yaml"
|
||||
dex: sh -c "go run github.com/argoproj/argo-cd/cmd/argocd-util gendexcfg -o `pwd`/dist/dex.yaml && docker run --rm -p ${ARGOCD_E2E_DEX_PORT:-5556}:${ARGOCD_E2E_DEX_PORT:-5556} -v `pwd`/dist/dex.yaml:/dex.yaml quay.io/dexidp/dex:v2.14.0 serve /dex.yaml"
|
||||
redis: docker run --rm --name argocd-redis -i -p ${ARGOCD_E2E_REDIS_PORT:-6379}:${ARGOCD_E2E_REDIS_PORT:-6379} redis:5.0.3-alpine --save "" --appendonly no --port ${ARGOCD_E2E_REDIS_PORT:-6379}
|
||||
repo-server: sh -c "FORCE_LOG_COLORS=1 ARGOCD_FAKE_IN_CLUSTER=true go run ./cmd/argocd-repo-server/main.go --loglevel debug --port ${ARGOCD_E2E_REPOSERVER_PORT:-8081} --redis localhost:${ARGOCD_E2E_REDIS_PORT:-6379}"
|
||||
ui: sh -c 'cd ui && ${ARGOCD_E2E_YARN_CMD:-yarn} start'
|
||||
|
||||
@@ -738,7 +738,13 @@ func (a *ArgoCDServer) Authenticate(ctx context.Context) (context.Context, error
|
||||
if a.DisableAuth {
|
||||
return ctx, nil
|
||||
}
|
||||
if claims, claimsErr := a.getClaims(ctx); claimsErr != nil {
|
||||
claims, claimsErr := a.getClaims(ctx)
|
||||
if claims != nil {
|
||||
// Add claims to the context to inspect for RBAC
|
||||
ctx = context.WithValue(ctx, "claims", claims)
|
||||
}
|
||||
|
||||
if claimsErr != nil {
|
||||
argoCDSettings, err := a.settingsMgr.GetSettings()
|
||||
if err != nil {
|
||||
return ctx, status.Errorf(codes.Internal, "unable to load settings: %v", err)
|
||||
@@ -746,9 +752,6 @@ func (a *ArgoCDServer) Authenticate(ctx context.Context) (context.Context, error
|
||||
if !argoCDSettings.AnonymousUserEnabled {
|
||||
return ctx, claimsErr
|
||||
}
|
||||
} else {
|
||||
// Add claims to the context to inspect for RBAC
|
||||
ctx = context.WithValue(ctx, "claims", claims)
|
||||
}
|
||||
|
||||
return ctx, nil
|
||||
@@ -765,7 +768,7 @@ func (a *ArgoCDServer) getClaims(ctx context.Context) (jwt.Claims, error) {
|
||||
}
|
||||
claims, err := a.sessionMgr.VerifyToken(tokenString)
|
||||
if err != nil {
|
||||
return nil, status.Errorf(codes.Unauthenticated, "invalid session: %v", err)
|
||||
return claims, status.Errorf(codes.Unauthenticated, "invalid session: %v", err)
|
||||
}
|
||||
return claims, nil
|
||||
}
|
||||
|
||||
@@ -170,11 +170,11 @@ func (mgr *SessionManager) VerifyToken(tokenString string) (jwt.Claims, error) {
|
||||
// IDP signed token
|
||||
prov, err := mgr.provider()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return claims, err
|
||||
}
|
||||
idToken, err := prov.Verify(claims.Audience, tokenString)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return claims, err
|
||||
}
|
||||
var claims jwt.MapClaims
|
||||
err = idToken.Claims(&claims)
|
||||
|
||||
Reference in New Issue
Block a user