fix(security): JWT validate against prod gateway only + cap grace renewal

- jwt: drop test/dev gateway from nubesAPIEndpoints (test-stand token was accepted as prod)
- cache: grace bounded by graceDeadline from last successful validation (no more indefinite renewal)
This commit is contained in:
2026-10-10 17:07:57 +03:00
parent 521e3d85d0
commit e21abb8f13
2 changed files with 18 additions and 11 deletions
+3 -3
View File
@@ -71,11 +71,11 @@ var ErrTokenRejected = errors.New("token rejected by nubes API")
// nubesAPIEndpoints — стенды Nubes API Gateway, по которым валидируется токен.
// Токен принимается, если ХОТЯ БЫ ОДИН стенд его принял.
// Юзер может вводить токен от любого стенда — главное, что токен действительный.
// Безопасность: только prod-шлюз. Тестовый/dev-шлюзы принимают токены своих
// стендов, и при их наличии токен тестового стенда считался бы валидным на проде.
// Специфичный endpoint можно переопределить через NUBES_ENDPOINT.
var nubesAPIEndpoints = []string{
"https://lk-api-gateway.ngcloud.ru/api/v1/svc",
"https://lk-api-gateway-test.ngcloud.ru/api/v1/svc",
"https://lk-api-gateway-dev.ngcloud.ru/api/v1/svc",
}
// nubesHTTPClient — общий клиент для валидации токенов: переиспользует