Skip to content

Commit

Permalink
u
Browse files Browse the repository at this point in the history
  • Loading branch information
aeneasr committed Jul 10, 2023
1 parent 11475b1 commit fbaacdf
Showing 1 changed file with 21 additions and 14 deletions.
35 changes: 21 additions & 14 deletions persistence/sql/persister_oauth2.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@ package sql

import (
"context"
"crypto/sha256"
"crypto/sha512"
"database/sql"
"encoding/hex"
"encoding/json"
"fmt"
"net/url"
"strings"
"time"

"go.opentelemetry.io/otel/trace"

"github.com/gofrs/uuid"
"github.com/pkg/errors"
"github.com/tidwall/gjson"
Expand Down Expand Up @@ -368,10 +372,7 @@ func (p *Persister) CreateAccessTokenSession(ctx context.Context, signature stri
defer otelx.End(span, &err)

events.Trace(ctx, events.AccessTokenIssued,
events.WithRequest(requester),
events.WithGrantType(requester.GetRequestForm().Get("grant_type")),
events.WithTokenFormat(string(p.config.AccessTokenStrategy(ctx))),
events.WithClientID(requester.GetClient().GetID()),
append(toEventOptions(requester), events.WithGrantType(requester.GetRequestForm().Get("grant_type")))...,
)

return p.createSession(ctx, signature, requester, sqlTableAccess)
Expand All @@ -389,14 +390,24 @@ func (p *Persister) DeleteAccessTokenSession(ctx context.Context, signature stri
return p.deleteSessionBySignature(ctx, signature, sqlTableAccess)
}

func (p *Persister) CreateRefreshTokenSession(ctx context.Context, signature string, requester fosite.Requester) (err error) {
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.DeleteCreateRefreshTokenSessionAccessTokenSession")
defer otelx.End(span, &err)
events.Trace(ctx, events.RefreshTokenIssued,
func toEventOptions(requester fosite.Requester) []trace.EventOption {
sub := ""
if requester.GetSession() != nil {
hash := sha256.Sum256([]byte(requester.GetSession().GetSubject()))
sub = hex.EncodeToString(hash[:])
}
return []trace.EventOption{
events.WithGrantType(requester.GetRequestForm().Get("grant_type")),
events.WithSubject(sub),
events.WithRequest(requester),
events.WithClientID(requester.GetClient().GetID()),
)
}
}

func (p *Persister) CreateRefreshTokenSession(ctx context.Context, signature string, requester fosite.Requester) (err error) {
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.DeleteCreateRefreshTokenSessionAccessTokenSession")
defer otelx.End(span, &err)
events.Trace(ctx, events.RefreshTokenIssued, toEventOptions(requester)...)
return p.createSession(ctx, signature, requester, sqlTableRefresh)
}

Expand All @@ -415,11 +426,7 @@ func (p *Persister) DeleteRefreshTokenSession(ctx context.Context, signature str
func (p *Persister) CreateOpenIDConnectSession(ctx context.Context, signature string, requester fosite.Requester) (err error) {
ctx, span := p.r.Tracer(ctx).Tracer().Start(ctx, "persistence.sql.CreateOpenIDConnectSession")
defer otelx.End(span, &err)
events.Trace(ctx, events.IdentityTokenIssued,
events.WithRequest(requester),
events.WithGrantType(requester.GetRequestForm().Get("grant_type")),
events.WithClientID(requester.GetClient().GetID()),
)
events.Trace(ctx, events.IdentityTokenIssued, toEventOptions(requester)...)
return p.createSession(ctx, signature, requester, sqlTableOpenID)
}

Expand Down

0 comments on commit fbaacdf

Please sign in to comment.