in auth/provider_config.go [460:501]
func (config *SAMLProviderConfigToCreate) buildRequest() (nestedMap, string, error) {
if err := validateSAMLConfigID(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(idpEntityIDKey); !ok || val == "" {
return nil, "", errors.New("IDPEntityID must not be empty")
}
if val, ok := config.params.GetString(ssoURLKey); !ok || val == "" {
return nil, "", errors.New("SSOURL must not be empty")
} else if _, err := url.ParseRequestURI(val); err != nil {
return nil, "", fmt.Errorf("failed to parse SSOURL: %v", err)
}
var certs interface{}
var ok bool
if certs, ok = config.params.Get(idpCertsKey); !ok || len(certs.([]idpCertificate)) == 0 {
return nil, "", errors.New("X509Certificates must not be empty")
}
for _, cert := range certs.([]idpCertificate) {
if cert.X509Certificate == "" {
return nil, "", errors.New("X509Certificates must not contain empty strings")
}
}
if val, ok := config.params.GetString(spEntityIDKey); !ok || val == "" {
return nil, "", errors.New("RPEntityID must not be empty")
}
if val, ok := config.params.GetString(callbackURIKey); !ok || val == "" {
return nil, "", errors.New("CallbackURL must not be empty")
} else if _, err := url.ParseRequestURI(val); err != nil {
return nil, "", fmt.Errorf("failed to parse CallbackURL: %v", err)
}
return config.params, config.id, nil
}