extract webfinger and oidc code
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 +}