1234567891011121314151617181920212223242526272829303132 |
- // Copyright 2023 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package saml
-
- import (
- "encoding/xml"
- "fmt"
- "net/http"
- )
-
- // Metadata redirects request/response pair to authenticate against the provider
- func (source *Source) Metadata(request *http.Request, response http.ResponseWriter) error {
- samlRWMutex.RLock()
- defer samlRWMutex.RUnlock()
- if _, ok := providers[source.authSource.Name]; !ok {
- return fmt.Errorf("provider does not exist")
- }
-
- metadata, err := providers[source.authSource.Name].samlSP.Metadata()
- if err != nil {
- return err
- }
- buf, err := xml.Marshal(metadata)
- if err != nil {
- return err
- }
-
- response.Header().Set("Content-Type", "application/samlmetadata+xml; charset=utf-8")
- _, _ = response.Write(buf)
- return nil
- }
|