[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:
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user