all repos — homestead @ c0f110119e434f188f5959c48570df12121cc663

Code for my website

extract webfinger and oidc code

Alan Pearce
commit

c0f110119e434f188f5959c48570df12121cc663

parent

4fe285fc78fdadde99c439e3691670b009087655

1 file changed, 45 insertions(+), 0 deletions(-)

changed files
A domain/identity/oidc/service.go
@@ -0,0 +1,45 @@
+package oidc + +import ( + "net/http" + + "alin.ovh/homestead/shared/config" + sharedhttp "alin.ovh/homestead/shared/http" + "alin.ovh/x/log" + + "github.com/benpate/digit" +) + +type Service struct { + config *config.Config + log *log.Logger + acctResource string + resource digit.Resource +} + +func New(cfg *config.Config, logger *log.Logger) *Service { + acctResource := "acct:" + cfg.OIDCEmail + resource := digit.NewResource(acctResource). + Link("http://openid.net/specs/connect/1.0/issuer", "", cfg.OIDCHost.String()) + + return &Service{ + config: cfg, + log: logger, + acctResource: acctResource, + resource: resource, + } +} + +func (s *Service) RegisterHandlers(mux *sharedhttp.ServeMux) { + const oidcPath = "/.well-known/openid-configuration" + mux.ServeMux.Handle(oidcPath, + sharedhttp.RedirectHandler(s.config.OIDCHost.JoinPath(oidcPath), http.StatusFound)) +} + +func (s *Service) GetResource() string { + return s.acctResource +} + +func (s *Service) GetIdentityResource() digit.Resource { + return s.resource +}