fix etcd pkce authcode json deserialization

Signed-off-by: Benjamin Ullian <bnu@tumblr.com>
This commit is contained in:
Benjamin Ullian 2021-01-04 22:10:32 -05:00
parent a825a22f7a
commit 62abddca7d
2 changed files with 23 additions and 1 deletions

View file

@ -156,7 +156,11 @@ func (c *conn) CreateAuthCode(a storage.AuthCode) error {
func (c *conn) GetAuthCode(id string) (a storage.AuthCode, err error) {
ctx, cancel := context.WithTimeout(context.Background(), defaultStorageTimeout)
defer cancel()
err = c.getKey(ctx, keyID(authCodePrefix, id), &a)
var ac AuthCode
err = c.getKey(ctx, keyID(authCodePrefix, id), &ac)
if err == nil {
a = toStorageAuthCode(ac)
}
return a, err
}

View file

@ -26,6 +26,24 @@ type AuthCode struct {
CodeChallengeMethod string `json:"code_challenge_method,omitempty"`
}
func toStorageAuthCode(a AuthCode) storage.AuthCode {
return storage.AuthCode{
ID: a.ID,
ClientID: a.ClientID,
RedirectURI: a.RedirectURI,
ConnectorID: a.ConnectorID,
ConnectorData: a.ConnectorData,
Nonce: a.Nonce,
Scopes: a.Scopes,
Claims: toStorageClaims(a.Claims),
Expiry: a.Expiry,
PKCE: storage.PKCE{
CodeChallenge: a.CodeChallenge,
CodeChallengeMethod: a.CodeChallengeMethod,
},
}
}
func fromStorageAuthCode(a storage.AuthCode) AuthCode {
return AuthCode{
ID: a.ID,