domain/identity/service.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 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 } |