|
|
|
@ -108,19 +108,19 @@ func (c *conn) CreateAuthRequest(a storage.AuthRequest) error { |
|
|
|
insert into auth_request ( |
|
|
|
insert into auth_request ( |
|
|
|
id, client_id, response_types, scopes, redirect_uri, nonce, state, |
|
|
|
id, client_id, response_types, scopes, redirect_uri, nonce, state, |
|
|
|
force_approval_prompt, logged_in, |
|
|
|
force_approval_prompt, logged_in, |
|
|
|
claims_user_id, claims_username, claims_email, claims_email_verified, |
|
|
|
claims_user_id, claims_username, claims_preferred_username,
|
|
|
|
claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
expiry |
|
|
|
expiry |
|
|
|
) |
|
|
|
) |
|
|
|
values ( |
|
|
|
values ( |
|
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17 |
|
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18 |
|
|
|
); |
|
|
|
); |
|
|
|
`, |
|
|
|
`, |
|
|
|
a.ID, a.ClientID, encoder(a.ResponseTypes), encoder(a.Scopes), a.RedirectURI, a.Nonce, a.State, |
|
|
|
a.ID, a.ClientID, encoder(a.ResponseTypes), encoder(a.Scopes), a.RedirectURI, a.Nonce, a.State, |
|
|
|
a.ForceApprovalPrompt, a.LoggedIn, |
|
|
|
a.ForceApprovalPrompt, a.LoggedIn, |
|
|
|
a.Claims.UserID, a.Claims.Username, a.Claims.Email, a.Claims.EmailVerified, |
|
|
|
a.Claims.UserID, a.Claims.Username, a.Claims.PreferredUsername, |
|
|
|
encoder(a.Claims.Groups), |
|
|
|
a.Claims.Email, a.Claims.EmailVerified, encoder(a.Claims.Groups), |
|
|
|
a.ConnectorID, a.ConnectorData, |
|
|
|
a.ConnectorID, a.ConnectorData, |
|
|
|
a.Expiry, |
|
|
|
a.Expiry, |
|
|
|
) |
|
|
|
) |
|
|
|
@ -149,16 +149,17 @@ func (c *conn) UpdateAuthRequest(id string, updater func(a storage.AuthRequest) |
|
|
|
set |
|
|
|
set |
|
|
|
client_id = $1, response_types = $2, scopes = $3, redirect_uri = $4, |
|
|
|
client_id = $1, response_types = $2, scopes = $3, redirect_uri = $4, |
|
|
|
nonce = $5, state = $6, force_approval_prompt = $7, logged_in = $8, |
|
|
|
nonce = $5, state = $6, force_approval_prompt = $7, logged_in = $8, |
|
|
|
claims_user_id = $9, claims_username = $10, claims_email = $11, |
|
|
|
claims_user_id = $9, claims_username = $10, claims_preferred_username = $11, |
|
|
|
claims_email_verified = $12, |
|
|
|
claims_email = $12, claims_email_verified = $13, |
|
|
|
claims_groups = $13, |
|
|
|
claims_groups = $14, |
|
|
|
connector_id = $14, connector_data = $15, |
|
|
|
connector_id = $15, connector_data = $16, |
|
|
|
expiry = $16 |
|
|
|
expiry = $17 |
|
|
|
where id = $17; |
|
|
|
where id = $18; |
|
|
|
`, |
|
|
|
`, |
|
|
|
a.ClientID, encoder(a.ResponseTypes), encoder(a.Scopes), a.RedirectURI, a.Nonce, a.State, |
|
|
|
a.ClientID, encoder(a.ResponseTypes), encoder(a.Scopes), a.RedirectURI, a.Nonce, a.State, |
|
|
|
a.ForceApprovalPrompt, a.LoggedIn, |
|
|
|
a.ForceApprovalPrompt, a.LoggedIn, |
|
|
|
a.Claims.UserID, a.Claims.Username, a.Claims.Email, a.Claims.EmailVerified, |
|
|
|
a.Claims.UserID, a.Claims.Username, a.Claims.PreferredUsername, |
|
|
|
|
|
|
|
a.Claims.Email, a.Claims.EmailVerified, |
|
|
|
encoder(a.Claims.Groups), |
|
|
|
encoder(a.Claims.Groups), |
|
|
|
a.ConnectorID, a.ConnectorData, |
|
|
|
a.ConnectorID, a.ConnectorData, |
|
|
|
a.Expiry, r.ID, |
|
|
|
a.Expiry, r.ID, |
|
|
|
@ -180,14 +181,15 @@ func getAuthRequest(q querier, id string) (a storage.AuthRequest, err error) { |
|
|
|
select
|
|
|
|
select
|
|
|
|
id, client_id, response_types, scopes, redirect_uri, nonce, state, |
|
|
|
id, client_id, response_types, scopes, redirect_uri, nonce, state, |
|
|
|
force_approval_prompt, logged_in, |
|
|
|
force_approval_prompt, logged_in, |
|
|
|
claims_user_id, claims_username, claims_email, claims_email_verified, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, expiry |
|
|
|
connector_id, connector_data, expiry |
|
|
|
from auth_request where id = $1; |
|
|
|
from auth_request where id = $1; |
|
|
|
`, id).Scan( |
|
|
|
`, id).Scan( |
|
|
|
&a.ID, &a.ClientID, decoder(&a.ResponseTypes), decoder(&a.Scopes), &a.RedirectURI, &a.Nonce, &a.State, |
|
|
|
&a.ID, &a.ClientID, decoder(&a.ResponseTypes), decoder(&a.Scopes), &a.RedirectURI, &a.Nonce, &a.State, |
|
|
|
&a.ForceApprovalPrompt, &a.LoggedIn, |
|
|
|
&a.ForceApprovalPrompt, &a.LoggedIn, |
|
|
|
&a.Claims.UserID, &a.Claims.Username, &a.Claims.Email, &a.Claims.EmailVerified, |
|
|
|
&a.Claims.UserID, &a.Claims.Username, &a.Claims.PreferredUsername, |
|
|
|
|
|
|
|
&a.Claims.Email, &a.Claims.EmailVerified, |
|
|
|
decoder(&a.Claims.Groups), |
|
|
|
decoder(&a.Claims.Groups), |
|
|
|
&a.ConnectorID, &a.ConnectorData, &a.Expiry, |
|
|
|
&a.ConnectorID, &a.ConnectorData, &a.Expiry, |
|
|
|
) |
|
|
|
) |
|
|
|
@ -204,16 +206,16 @@ func (c *conn) CreateAuthCode(a storage.AuthCode) error { |
|
|
|
_, err := c.Exec(` |
|
|
|
_, err := c.Exec(` |
|
|
|
insert into auth_code ( |
|
|
|
insert into auth_code ( |
|
|
|
id, client_id, scopes, nonce, redirect_uri, |
|
|
|
id, client_id, scopes, nonce, redirect_uri, |
|
|
|
claims_user_id, claims_username, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
expiry |
|
|
|
expiry |
|
|
|
) |
|
|
|
) |
|
|
|
values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13); |
|
|
|
values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14); |
|
|
|
`, |
|
|
|
`, |
|
|
|
a.ID, a.ClientID, encoder(a.Scopes), a.Nonce, a.RedirectURI, a.Claims.UserID, |
|
|
|
a.ID, a.ClientID, encoder(a.Scopes), a.Nonce, a.RedirectURI, a.Claims.UserID, |
|
|
|
a.Claims.Username, a.Claims.Email, a.Claims.EmailVerified, encoder(a.Claims.Groups), |
|
|
|
a.Claims.Username, a.Claims.PreferredUsername, a.Claims.Email, a.Claims.EmailVerified, |
|
|
|
a.ConnectorID, a.ConnectorData, a.Expiry, |
|
|
|
encoder(a.Claims.Groups), a.ConnectorID, a.ConnectorData, a.Expiry, |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
@ -229,15 +231,15 @@ func (c *conn) GetAuthCode(id string) (a storage.AuthCode, err error) { |
|
|
|
err = c.QueryRow(` |
|
|
|
err = c.QueryRow(` |
|
|
|
select |
|
|
|
select |
|
|
|
id, client_id, scopes, nonce, redirect_uri, |
|
|
|
id, client_id, scopes, nonce, redirect_uri, |
|
|
|
claims_user_id, claims_username, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
expiry |
|
|
|
expiry |
|
|
|
from auth_code where id = $1; |
|
|
|
from auth_code where id = $1; |
|
|
|
`, id).Scan( |
|
|
|
`, id).Scan( |
|
|
|
&a.ID, &a.ClientID, decoder(&a.Scopes), &a.Nonce, &a.RedirectURI, &a.Claims.UserID, |
|
|
|
&a.ID, &a.ClientID, decoder(&a.Scopes), &a.Nonce, &a.RedirectURI, &a.Claims.UserID, |
|
|
|
&a.Claims.Username, &a.Claims.Email, &a.Claims.EmailVerified, decoder(&a.Claims.Groups), |
|
|
|
&a.Claims.Username, &a.Claims.PreferredUsername, &a.Claims.Email, &a.Claims.EmailVerified, |
|
|
|
&a.ConnectorID, &a.ConnectorData, &a.Expiry, |
|
|
|
decoder(&a.Claims.Groups), &a.ConnectorID, &a.ConnectorData, &a.Expiry, |
|
|
|
) |
|
|
|
) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
if err == sql.ErrNoRows { |
|
|
|
if err == sql.ErrNoRows { |
|
|
|
@ -252,15 +254,16 @@ func (c *conn) CreateRefresh(r storage.RefreshToken) error { |
|
|
|
_, err := c.Exec(` |
|
|
|
_, err := c.Exec(` |
|
|
|
insert into refresh_token ( |
|
|
|
insert into refresh_token ( |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
claims_user_id, claims_username, claims_email, claims_email_verified, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
token, created_at, last_used |
|
|
|
token, created_at, last_used |
|
|
|
) |
|
|
|
) |
|
|
|
values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14); |
|
|
|
values ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15); |
|
|
|
`, |
|
|
|
`, |
|
|
|
r.ID, r.ClientID, encoder(r.Scopes), r.Nonce, |
|
|
|
r.ID, r.ClientID, encoder(r.Scopes), r.Nonce, |
|
|
|
r.Claims.UserID, r.Claims.Username, r.Claims.Email, r.Claims.EmailVerified, |
|
|
|
r.Claims.UserID, r.Claims.Username, r.Claims.PreferredUsername, |
|
|
|
|
|
|
|
r.Claims.Email, r.Claims.EmailVerified, |
|
|
|
encoder(r.Claims.Groups), |
|
|
|
encoder(r.Claims.Groups), |
|
|
|
r.ConnectorID, r.ConnectorData, |
|
|
|
r.ConnectorID, r.ConnectorData, |
|
|
|
r.Token, r.CreatedAt, r.LastUsed, |
|
|
|
r.Token, r.CreatedAt, r.LastUsed, |
|
|
|
@ -291,19 +294,21 @@ func (c *conn) UpdateRefreshToken(id string, updater func(old storage.RefreshTok |
|
|
|
nonce = $3, |
|
|
|
nonce = $3, |
|
|
|
claims_user_id = $4, |
|
|
|
claims_user_id = $4, |
|
|
|
claims_username = $5, |
|
|
|
claims_username = $5, |
|
|
|
claims_email = $6, |
|
|
|
claims_preferred_username = $6, |
|
|
|
claims_email_verified = $7, |
|
|
|
claims_email = $7, |
|
|
|
claims_groups = $8, |
|
|
|
claims_email_verified = $8, |
|
|
|
connector_id = $9, |
|
|
|
claims_groups = $9, |
|
|
|
connector_data = $10, |
|
|
|
connector_id = $10, |
|
|
|
token = $11, |
|
|
|
connector_data = $11, |
|
|
|
created_at = $12, |
|
|
|
token = $12, |
|
|
|
last_used = $13 |
|
|
|
created_at = $13, |
|
|
|
|
|
|
|
last_used = $14 |
|
|
|
where |
|
|
|
where |
|
|
|
id = $14 |
|
|
|
id = $15 |
|
|
|
`, |
|
|
|
`, |
|
|
|
r.ClientID, encoder(r.Scopes), r.Nonce, |
|
|
|
r.ClientID, encoder(r.Scopes), r.Nonce, |
|
|
|
r.Claims.UserID, r.Claims.Username, r.Claims.Email, r.Claims.EmailVerified, |
|
|
|
r.Claims.UserID, r.Claims.Username, r.Claims.PreferredUsername, |
|
|
|
|
|
|
|
r.Claims.Email, r.Claims.EmailVerified, |
|
|
|
encoder(r.Claims.Groups), |
|
|
|
encoder(r.Claims.Groups), |
|
|
|
r.ConnectorID, r.ConnectorData, |
|
|
|
r.ConnectorID, r.ConnectorData, |
|
|
|
r.Token, r.CreatedAt, r.LastUsed, id, |
|
|
|
r.Token, r.CreatedAt, r.LastUsed, id, |
|
|
|
@ -323,7 +328,8 @@ func getRefresh(q querier, id string) (storage.RefreshToken, error) { |
|
|
|
return scanRefresh(q.QueryRow(` |
|
|
|
return scanRefresh(q.QueryRow(` |
|
|
|
select |
|
|
|
select |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
claims_user_id, claims_username, claims_email, claims_email_verified, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
|
|
|
|
claims_email, claims_email_verified, |
|
|
|
claims_groups, |
|
|
|
claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
token, created_at, last_used |
|
|
|
token, created_at, last_used |
|
|
|
@ -335,8 +341,8 @@ func (c *conn) ListRefreshTokens() ([]storage.RefreshToken, error) { |
|
|
|
rows, err := c.Query(` |
|
|
|
rows, err := c.Query(` |
|
|
|
select |
|
|
|
select |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
id, client_id, scopes, nonce, |
|
|
|
claims_user_id, claims_username, claims_email, claims_email_verified, |
|
|
|
claims_user_id, claims_username, claims_preferred_username, |
|
|
|
claims_groups, |
|
|
|
claims_email, claims_email_verified, claims_groups, |
|
|
|
connector_id, connector_data, |
|
|
|
connector_id, connector_data, |
|
|
|
token, created_at, last_used |
|
|
|
token, created_at, last_used |
|
|
|
from refresh_token; |
|
|
|
from refresh_token; |
|
|
|
@ -361,7 +367,8 @@ func (c *conn) ListRefreshTokens() ([]storage.RefreshToken, error) { |
|
|
|
func scanRefresh(s scanner) (r storage.RefreshToken, err error) { |
|
|
|
func scanRefresh(s scanner) (r storage.RefreshToken, err error) { |
|
|
|
err = s.Scan( |
|
|
|
err = s.Scan( |
|
|
|
&r.ID, &r.ClientID, decoder(&r.Scopes), &r.Nonce, |
|
|
|
&r.ID, &r.ClientID, decoder(&r.Scopes), &r.Nonce, |
|
|
|
&r.Claims.UserID, &r.Claims.Username, &r.Claims.Email, &r.Claims.EmailVerified, |
|
|
|
&r.Claims.UserID, &r.Claims.Username, &r.Claims.PreferredUsername, |
|
|
|
|
|
|
|
&r.Claims.Email, &r.Claims.EmailVerified, |
|
|
|
decoder(&r.Claims.Groups), |
|
|
|
decoder(&r.Claims.Groups), |
|
|
|
&r.ConnectorID, &r.ConnectorData, |
|
|
|
&r.ConnectorID, &r.ConnectorData, |
|
|
|
&r.Token, &r.CreatedAt, &r.LastUsed, |
|
|
|
&r.Token, &r.CreatedAt, &r.LastUsed, |
|
|
|
|