Arnaud Siebens 1 week ago
parent
commit
7cd74ec794
No account linked to committer's email address
1 changed files with 24 additions and 2 deletions
  1. 24
    2
      services/auth/source/oauth2/source.go

+ 24
- 2
services/auth/source/oauth2/source.go View File

@@ -6,6 +6,8 @@ package oauth2
import (
"code.gitea.io/gitea/models/auth"
"code.gitea.io/gitea/modules/json"
"code.gitea.io/gitea/modules/secret"
"code.gitea.io/gitea/modules/setting"
)

// Source holds configuration for the OAuth2 login source.
@@ -13,6 +15,7 @@ type Source struct {
Provider string
ClientID string
ClientSecret string
ClientSecretEncrypt string // Encrypted Client Secret
OpenIDConnectAutoDiscoveryURL string
CustomURLMapping *CustomURLMapping
IconURL string
@@ -33,11 +36,30 @@ type Source struct {

// FromDB fills up an OAuth2Config from serialized format.
func (source *Source) FromDB(bs []byte) error {
return json.UnmarshalHandleDoubleEncode(bs, &source)
err := json.UnmarshalHandleDoubleEncode(bs, &source)
if err != nil {
return err
}

if source.ClientSecretEncrypt != "" {
source.ClientSecret, err = secret.DecryptSecret(setting.SecretKey, source.ClientSecretEncrypt)
source.ClientSecretEncrypt = ""
}

return err
}

// ToDB exports an SMTPConfig to a serialized format.
// ToDB exports an OAuth2Config to a serialized format.
func (source *Source) ToDB() ([]byte, error) {
var err error

source.ClientSecretEncrypt, err = secret.EncryptSecret(setting.SecretKey, source.ClientSecret)
if err != nil {
return nil, err
}

source.ClientSecret = ""

return json.Marshal(source)
}


Loading…
Cancel
Save