Skip to content
Snippets Groups Projects
Commit 1df6f233 authored by ale's avatar ale
Browse files

Support reading SAML XML descriptors from file or inline

parent 6182a298
Branches
No related tags found
No related merge requests found
...@@ -26,6 +26,8 @@ import ( ...@@ -26,6 +26,8 @@ import (
) )
type serviceProvider struct { type serviceProvider struct {
// Descriptor can either be an inline XML document, or it can
// be read from a file with the syntax "@filename".
Descriptor string `yaml:"descriptor"` Descriptor string `yaml:"descriptor"`
SSOGroups []string `yaml:"sso_groups"` SSOGroups []string `yaml:"sso_groups"`
...@@ -81,9 +83,13 @@ func (c *Config) check() error { ...@@ -81,9 +83,13 @@ func (c *Config) check() error {
func (c *Config) loadServiceProviders() error { func (c *Config) loadServiceProviders() error {
c.serviceProviderMap = make(map[string]*serviceProvider) c.serviceProviderMap = make(map[string]*serviceProvider)
for _, sp := range c.ServiceProviders { for _, sp := range c.ServiceProviders {
data, err := ioutil.ReadFile(sp.Descriptor) var data []byte
if err != nil { if strings.HasPrefix(sp.Descriptor, "@") {
return err var err error
data, err = ioutil.ReadFile(sp.Descriptor[1:])
if err != nil {
return err
}
} }
var ent saml.EntityDescriptor var ent saml.EntityDescriptor
if err := xml.Unmarshal(data, &ent); err != nil { if err := xml.Unmarshal(data, &ent); err != nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment