<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          go-samlGo 語(yǔ)言的 SAML 開發(fā)包

          聯(lián)合創(chuàng)作 · 2023-09-23 14:35

          go-saml 是 Go 語(yǔ)言的 SAML 開發(fā)包。

          示例代碼:

          package main
          
          import (
              "crypto/rsa"
              "crypto/tls"
              "crypto/x509"
              "fmt"
              "net/http"
              "net/url"
          
              "github.com/crewjam/saml/samlsp"
          )
          
          func hello(w http.ResponseWriter, r *http.Request) {
              fmt.Fprintf(w, "Hello, %s!", samlsp.Token(r.Context()).Attributes.Get("cn"))
          }
          
          func main() {
              keyPair, err := tls.LoadX509KeyPair("myservice.cert", "myservice.key")
              if err != nil {
                  panic(err) // TODO handle error
              }
              keyPair.Leaf, err = x509.ParseCertificate(keyPair.Certificate[0])
              if err != nil {
                  panic(err) // TODO handle error
              }
          
              idpMetadataURL, err := url.Parse("https://www.testshib.org/metadata/testshib-providers.xml")
              if err != nil {
                  panic(err) // TODO handle error
              }
          
              rootURL, err := url.Parse("http://localhost:8000")
              if err != nil {
                  panic(err) // TODO handle error
              }
          
              samlSP, _ := samlsp.New(samlsp.Options{
                  URL:            *rootURL,
                  Key:            keyPair.PrivateKey.(*rsa.PrivateKey),
                  Certificate:    keyPair.Leaf,
                  IDPMetadataURL: idpMetadataURL,
              })
              app := http.HandlerFunc(hello)
              http.Handle("/hello", samlSP.RequireAccount(app))
              http.Handle("/saml/", samlSP)
              http.ListenAndServe(":8000", nil)
          }
          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人AV电影在线观看 | 日本艹逼| 黄色五月天视频 | 久久奇米 | 黄片视频a |