/
t3
/
token-server
Обзор
Документация
Войти
/
t3
/
token-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
main
cmd/server/main.go
56 строк
1 KB
Ivan Shibkikh
auth: phase 3
25 июл 2026, 22:52
25 июл 2026, 22:52
a53c429
Код
Авторство
О чём код?
package main import ( "context" "flag" "fmt" "log/slog" "os" "os/signal" "syscall" "gitverse.ru/t3/sts/internal/api" "gitverse.ru/t3/sts/internal/app" "gitverse.ru/t3/sts/internal/auth" "gitverse.ru/t3/sts/internal/client" "gitverse.ru/t3/sts/internal/config" "gitverse.ru/t3/sts/internal/storage" ) func main() { ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer cancel() logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) if err := run(ctx, logger); err != nil { logger.Error("sts stopped with error", "error", err) os.Exit(1) } } func run(ctx context.Context, logger *slog.Logger) error { configPath := flag.String("f", "config.yml", "path to config file") flag.Parse() cfg, err := config.Load(*configPath) if err != nil { return fmt.Errorf("failed to load config: %w", err) } // Load (or generate in development) the RSA signing key pair. km, err := auth.NewKeyManager(cfg.STS.Keys.PrivateKeyPath, cfg.STS.Keys.PublicKeyPath, cfg.Env) if err != nil { return fmt.Errorf("failed to init key manager: %w", err) } logger.Info("sts key loaded", "kid", km.KID(), "env", cfg.Env) issuer := auth.NewIssuer(km, cfg.STS.Issuer, cfg.STS.AccessTTL, cfg.STS.RefreshTTL, cfg.STS.ServiceTTL) iamClient := client.NewIAMClient(&cfg.IAM) sessions := storage.NewSessionStore() handler := api.NewRouter(cfg, km, issuer, iamClient, sessions, logger) application := app.New(cfg, logger, handler) return application.Run(ctx) }