Auth: Replace maximum inactive/lifetime settings of days to duration (#27150)

Allows login_maximum_inactive_lifetime_duration and 
login_maximum_lifetime_duration to be configured using 
time.Duration-compatible values while retaining backward compatibility.

Fixes #17554

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
This commit is contained in:
Hansuuuuuuuuuu
2020-09-14 21:57:38 +08:00
committed by GitHub
parent f529223455
commit 8d971ab2f2
12 changed files with 122 additions and 49 deletions

View File

@@ -17,6 +17,7 @@ import (
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/components/gtime"
"github.com/grafana/grafana/pkg/infra/log"
"github.com/grafana/grafana/pkg/infra/remotecache"
authproxy "github.com/grafana/grafana/pkg/middleware/auth_proxy"
@@ -253,8 +254,7 @@ func TestMiddlewareContext(t *testing.T) {
return true, nil
}
maxAgeHours := (time.Duration(setting.LoginMaxLifetimeDays) * 24 * time.Hour)
maxAge := (maxAgeHours + time.Hour).Seconds()
maxAge := int(setting.LoginMaxLifetime.Seconds())
sameSitePolicies := []http.SameSite{
http.SameSiteNoneMode,
@@ -272,7 +272,7 @@ func TestMiddlewareContext(t *testing.T) {
Value: "rotated",
Path: expectedCookiePath,
HttpOnly: true,
MaxAge: int(maxAge),
MaxAge: maxAge,
Secure: setting.CookieSecure,
SameSite: sameSitePolicy,
}
@@ -303,7 +303,7 @@ func TestMiddlewareContext(t *testing.T) {
Value: "rotated",
Path: expectedCookiePath,
HttpOnly: true,
MaxAge: int(maxAge),
MaxAge: maxAge,
Secure: setting.CookieSecure,
}
@@ -546,7 +546,7 @@ func middlewareScenario(t *testing.T, desc string, fn scenarioFunc) {
defer bus.ClearBusHandlers()
setting.LoginCookieName = "grafana_session"
setting.LoginMaxLifetimeDays = 30
setting.LoginMaxLifetime, _ = gtime.ParseInterval("30d")
sc := &scenarioContext{}
@@ -637,7 +637,7 @@ func TestTokenRotationAtEndOfRequest(t *testing.T) {
func initTokenRotationTest(ctx context.Context) (*models.ReqContext, *httptest.ResponseRecorder, error) {
setting.LoginCookieName = "login_token"
setting.LoginMaxLifetimeDays = 7
setting.LoginMaxLifetime, _ = gtime.ParseInterval("7d")
rr := httptest.NewRecorder()
req, err := http.NewRequestWithContext(ctx, "", "", nil)