in auth/provider_config.go [192:225]
func (config *OIDCProviderConfigToCreate) buildRequest() (nestedMap, string, error) {
if err := validateOIDCConfigID(config.id); err != nil {
return nil, "", err
}
if len(config.params) == 0 {
return nil, "", errors.New("no parameters specified in the create request")
}
if val, ok := config.params.GetString(clientIDKey); !ok || val == "" {
return nil, "", errors.New("ClientID must not be empty")
}
if val, ok := config.params.GetString(issuerKey); !ok || val == "" {
return nil, "", errors.New("Issuer must not be empty")
} else if _, err := url.ParseRequestURI(val); err != nil {
return nil, "", fmt.Errorf("failed to parse Issuer: %v", err)
}
if val, ok := config.params.Get(codeResponseTypeKey); ok && val.(bool) {
if val, ok := config.params.GetString(clientSecretKey); !ok || val == "" {
return nil, "", errors.New("Client Secret must not be empty for Code Response Type")
}
if val, ok := config.params.Get(idTokenResponseTypeKey); ok && val.(bool) {
return nil, "", errors.New("Only one response type may be chosen")
}
} else if ok && !val.(bool) {
if val, ok := config.params.Get(idTokenResponseTypeKey); ok && !val.(bool) {
return nil, "", errors.New("At least one response type must be returned")
}
}
return config.params, config.id, nil
}