all repos — homestead @ c0f110119e434f188f5959c48570df12121cc663

Code for my website

extract webfinger and oidc code

Alan Pearce
commit

c0f110119e434f188f5959c48570df12121cc663

parent

4fe285fc78fdadde99c439e3691670b009087655

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

changed files
A domain/identity/service.go
@@ -0,0 +1,44 @@
+package identity + +import ( + "alin.ovh/homestead/domain/identity/oidc" + "alin.ovh/homestead/domain/identity/webfinger" + "alin.ovh/homestead/shared/config" + "alin.ovh/homestead/shared/http" + "alin.ovh/x/log" +) + +type Service struct { + oidc *oidc.Service + webfinger *webfinger.Service + log *log.Logger +} + +func New(cfg *config.Config, logger *log.Logger) *Service { + oidcService := oidc.New(cfg, logger.Named("oidc")) + + webfingerService := webfinger.New( + logger.Named("webfinger"), + []webfinger.ResourceProvider{oidcService}, + ) + + return &Service{ + oidc: oidcService, + webfinger: webfingerService, + log: logger, + } +} + +func (s *Service) RegisterHandlers(mux *http.ServeMux) { + s.oidc.RegisterHandlers(mux) + + mux.HandleFunc("/.well-known/webfinger", s.webfinger.HandleFunc) +} + +func (s *Service) GetOIDCService() *oidc.Service { + return s.oidc +} + +func (s *Service) GetWebFingerService() *webfinger.Service { + return s.webfinger +}