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 }