From 2a0ab16a1c39919004d2db205d127b17d4eec6bc Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Wed, 6 Mar 2019 20:12:37 -0700 Subject: [PATCH] update docs --- keyserve/doc.go | 37 +++++++++++++++++++++++++++++++++++++ keyserve/keyserve.go | 10 +++------- 2 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 keyserve/doc.go diff --git a/keyserve/doc.go b/keyserve/doc.go new file mode 100644 index 0000000..41b2827 --- /dev/null +++ b/keyserve/doc.go @@ -0,0 +1,37 @@ +/* + +Package keyserve provides middleware to serve Public Keys +via OIDC-style (https://example.com/.well-known/openid-configuration) +and Auth0-style (https://example.com/.well-known/jwks.json) +URLs. It uses the keypairs package to encode to JWK format. + +Basic usage: + + import ( + "crypto/ecdsa" + "crypto/rand" + "time" + + "github.com/big-squid/go-keypairs/keyserve" + ) + + key, _ := ecdsa.GenerateKey(elliptic.P256, rand.Reader) + pub := key.Public() + + handlers := &keyserve.Middleware{ + // the self-reference used for building the openid-configuration url + BaseURL: "https://example.com/", + // public keys used to verify token signatures + Keys: []keypairs.PublicKey{ keypairs.NewPublicKey(pub) } + // how long clients should cache your public key + ExpiresIn: 72 * time.Hour + } + +You can then use the handlers anywhere http.HandleFunc is allowed: + + http.HandleFunc(keyserve.PEMPath, handlers.Auth0PEM) + http.HandleFunc(keyserve.JWKsPath, handlers.WellKnownJWKs) + http.HandleFunc(keyserve.OIDCPath, handlers.WellKnownOIDC) + +*/ +package keyserve diff --git a/keyserve/keyserve.go b/keyserve/keyserve.go index 7f23a03..d00cac7 100644 --- a/keyserve/keyserve.go +++ b/keyserve/keyserve.go @@ -1,7 +1,3 @@ -// Package keyserve provides middleware to serve Public Keys -// via OIDC-style (https://example.com/.well-known/openid-configuration) -// and Auth0-style (https://example.com/.well-known/jwks.json) -// URLs. It uses the keypairs package to encode to JWK format. package keyserve import ( @@ -31,8 +27,8 @@ const OIDCPath = "/.well-known/openid-configuration" var oidcURL, _ = url.Parse(".well-known/openid-configuration") -// Auth0PEMPath is "/pem" (Auth0 convention) -const Auth0PEMPath = "/pem" +// PEMPath is "/pem" (Auth0 convention) +const PEMPath = "/pem" var auth0PEMURL, _ = url.Parse("pem") @@ -66,7 +62,7 @@ func (m *Middleware) Handler(w http.ResponseWriter, r *http.Request) bool { return true } - if strings.HasSuffix(r.URL.Path, Auth0PEMPath) { + if strings.HasSuffix(r.URL.Path, PEMPath) { m.Auth0PEM(w, r) return true }