fix: add deadline to jwk register
This commit is contained in:
10
main.go
10
main.go
@@ -20,7 +20,7 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
if _, err := os.Stat(".env"); err == nil {
|
if _, err := os.Stat(".env"); err == nil {
|
||||||
if err := godotenv.Load(".env"); err != nil {
|
if err = godotenv.Load(".env"); err != nil {
|
||||||
log.Printf("Warning: Failed to load .env file: %s", err)
|
log.Printf("Warning: Failed to load .env file: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer func(connect *pgx.Conn, ctx context.Context) {
|
defer func(connect *pgx.Conn, ctx context.Context) {
|
||||||
err := connect.Close(ctx)
|
err = connect.Close(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@@ -70,13 +70,13 @@ func main() {
|
|||||||
errCh := make(chan error, 2)
|
errCh := make(chan error, 2)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
if err := s.StartAPI(ctx, apiAddr); err != nil && !errors.Is(err, context.Canceled) {
|
if err = s.StartAPI(ctx, apiAddr); err != nil && !errors.Is(err, context.Canceled) {
|
||||||
errCh <- err
|
errCh <- err
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
if err := s.StartController(ctx, controllerAddr); err != nil && !errors.Is(err, context.Canceled) {
|
if err = s.StartController(ctx, controllerAddr); err != nil && !errors.Is(err, context.Canceled) {
|
||||||
errCh <- err
|
errCh <- err
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
@@ -84,7 +84,7 @@ func main() {
|
|||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
log.Printf("shutting down: %v", ctx.Err())
|
log.Printf("shutting down: %v", ctx.Err())
|
||||||
case err := <-errCh:
|
case err = <-errCh:
|
||||||
log.Fatalf("server error: %v", err)
|
log.Fatalf("server error: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
defaultSubscriberResponseWait = 5 * time.Second
|
defaultSubscriberResponseWait = 5 * time.Second
|
||||||
|
jwkRegisterTimeout = 5 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
type Subscriber struct {
|
type Subscriber struct {
|
||||||
@@ -352,10 +353,12 @@ func (s *Server) StartAPI(ctx context.Context, Addr string) error {
|
|||||||
WriteTimeout: 15 * time.Second,
|
WriteTimeout: 15 * time.Second,
|
||||||
IdleTimeout: 60 * time.Second,
|
IdleTimeout: 60 * time.Second,
|
||||||
}
|
}
|
||||||
|
|
||||||
jwkURL := config.Getenv("JWKS_URL", "")
|
jwkURL := config.Getenv("JWKS_URL", "")
|
||||||
if jwkURL != "" {
|
if jwkURL != "" {
|
||||||
if err := s.jwkCache.Register(ctx, jwkURL); err != nil {
|
registerCtx, cancel := context.WithTimeout(ctx, jwkRegisterTimeout)
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
|
if err := s.jwkCache.Register(registerCtx, jwkURL); err != nil {
|
||||||
return fmt.Errorf("failed to register jwk cache: %w", err)
|
return fmt.Errorf("failed to register jwk cache: %w", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user