feat: add id token handler

This commit is contained in:
Johan Siebens
2022-09-27 16:13:17 +02:00
parent 7cadcc9085
commit 2e57338b54
8 changed files with 237 additions and 1 deletions
+28
View File
@@ -8,6 +8,7 @@ import (
"github.com/hashicorp/go-hclog"
"github.com/jsiebens/ionscale/internal/broker"
"github.com/jsiebens/ionscale/internal/database/migration"
"github.com/jsiebens/ionscale/internal/util"
"tailscale.com/types/key"
"time"
@@ -85,6 +86,10 @@ func migrate(db *gorm.DB) error {
return err
}
if err := createJSONWebKeySet(ctx, repository); err != nil {
return err
}
return nil
}
@@ -108,6 +113,29 @@ func createServerKey(ctx context.Context, repository domain.Repository) error {
return nil
}
func createJSONWebKeySet(ctx context.Context, repository domain.Repository) error {
jwks, err := repository.GetJSONWebKeySet(ctx)
if err != nil {
return err
}
if jwks != nil {
return nil
}
privateKey, id, err := util.NewPrivateKey()
if err != nil {
return err
}
jsonWebKey := domain.JSONWebKey{Id: id, PrivateKey: *privateKey}
if err := repository.SetJSONWebKeySet(ctx, &domain.JSONWebKeys{Key: jsonWebKey}); err != nil {
return err
}
return nil
}
type GormLoggerAdapter struct {
logger hclog.Logger
}