[v10.2.x] Auth: Use cfg.Raw in OAuthStrategy for loading settings (#80157)

Auth: Use cfg.Raw in OAuthStrategy for loading settings (#80136)

Use cfg.Raw in OAuthStrategy, remove unnecessary tests

(cherry picked from commit eae6adf002)
This commit is contained in:
Misi
2024-01-08 16:40:39 +01:00
committed by GitHub
parent 74c0546233
commit 1b3d09fdda
3 changed files with 15 additions and 82 deletions
@@ -56,7 +56,7 @@ func (s *OAuthStrategy) loadAllSettings() {
}
func (s *OAuthStrategy) loadSettingsForProvider(provider string) *social.OAuthInfo {
section := s.cfg.SectionWithEnvOverrides("auth." + provider)
section := s.cfg.Raw.Section("auth." + provider)
result := &social.OAuthInfo{
AllowAssignGrafanaAdmin: section.Key("allow_assign_grafana_admin").MustBool(false),
@@ -97,22 +97,7 @@ var (
}
)
func TestGetProviderConfig_EnvVarsOnly(t *testing.T) {
setupEnvVars(t)
cfg := setting.NewCfg()
strategy := NewOAuthStrategy(cfg)
result, err := strategy.GetProviderConfig(context.Background(), "generic_oauth")
require.NoError(t, err)
oauthInfo, ok := result.(*social.OAuthInfo)
require.True(t, ok)
require.Equal(t, expectedOAuthInfo, oauthInfo)
}
func TestGetProviderConfig_IniFileOnly(t *testing.T) {
func TestGetProviderConfig(t *testing.T) {
iniFile, err := ini.Load([]byte(iniContent))
require.NoError(t, err)
@@ -129,68 +114,3 @@ func TestGetProviderConfig_IniFileOnly(t *testing.T) {
require.Equal(t, expectedOAuthInfo, oauthInfo)
}
func TestGetProviderConfig_EnvVarsOverrideIniFileSettings(t *testing.T) {
t.Setenv("GF_AUTH_GENERIC_OAUTH_ENABLED", "false")
t.Setenv("GF_AUTH_GENERIC_OAUTH_SKIP_ORG_ROLE_SYNC", "false")
iniFile, err := ini.Load([]byte(iniContent))
require.NoError(t, err)
cfg := setting.NewCfg()
cfg.Raw = iniFile
strategy := NewOAuthStrategy(cfg)
result, err := strategy.GetProviderConfig(context.Background(), "generic_oauth")
require.NoError(t, err)
oauthInfo, ok := result.(*social.OAuthInfo)
require.True(t, ok)
expectedOAuthInfoWithOverrides := *expectedOAuthInfo
expectedOAuthInfoWithOverrides.Enabled = false
expectedOAuthInfoWithOverrides.SkipOrgRoleSync = false
require.Equal(t, expectedOAuthInfoWithOverrides, *oauthInfo)
}
func setupEnvVars(t *testing.T) {
t.Setenv("GF_AUTH_GENERIC_OAUTH_NAME", "OAuth")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ICON", "signin")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ENABLED", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ALLOW_SIGN_UP", "false")
t.Setenv("GF_AUTH_GENERIC_OAUTH_AUTO_LOGIN", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_CLIENT_ID", "test_client_id")
t.Setenv("GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET", "test_client_secret")
t.Setenv("GF_AUTH_GENERIC_OAUTH_SCOPES", `["openid", "profile", "email"]`)
t.Setenv("GF_AUTH_GENERIC_OAUTH_EMPTY_SCOPES", "")
t.Setenv("GF_AUTH_GENERIC_OAUTH_EMAIL_ATTRIBUTE_NAME", "email:primary")
t.Setenv("GF_AUTH_GENERIC_OAUTH_EMAIL_ATTRIBUTE_PATH", "email")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH", "role")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_STRICT", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_GROUPS_ATTRIBUTE_PATH", "groups")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TEAM_IDS_ATTRIBUTE_PATH", "team_ids")
t.Setenv("GF_AUTH_GENERIC_OAUTH_AUTH_URL", "test_auth_url")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TOKEN_URL", "test_token_url")
t.Setenv("GF_AUTH_GENERIC_OAUTH_API_URL", "test_api_url")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TEAMS_URL", "test_teams_url")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ALLOWED_DOMAINS", "domain1.com")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ALLOWED_GROUPS", "")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TLS_SKIP_VERIFY_INSECURE", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TLS_CLIENT_CERT", "")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TLS_CLIENT_KEY", "")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TLS_CLIENT_CA", "")
t.Setenv("GF_AUTH_GENERIC_OAUTH_USE_PKCE", "false")
t.Setenv("GF_AUTH_GENERIC_OAUTH_AUTH_STYLE", "inheader")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ALLOW_ASSIGN_GRAFANA_ADMIN", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_SKIP_ORG_ROLE_SYNC", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_USE_REFRESH_TOKEN", "true")
t.Setenv("GF_AUTH_GENERIC_OAUTH_HOSTED_DOMAIN", "test_hosted_domain")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ALLOWED_ORGANIZATIONS", "org1, org2")
t.Setenv("GF_AUTH_GENERIC_OAUTH_ID_TOKEN_ATTRIBUTE_NAME", "id_token")
t.Setenv("GF_AUTH_GENERIC_OAUTH_LOGIN_ATTRIBUTE_PATH", "login")
t.Setenv("GF_AUTH_GENERIC_OAUTH_NAME_ATTRIBUTE_PATH", "name")
t.Setenv("GF_AUTH_GENERIC_OAUTH_TEAM_IDS", "first, second")
t.Setenv("GF_AUTH_GENERIC_OAUTH_SIGNOUT_REDIRECT_URL", "test_signout_redirect_url")
}