add support for reading more secrets from files

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino
2023-11-24 20:43:50 +01:00
parent a91cf22e0f
commit 6175acb572
11 changed files with 126 additions and 44 deletions

View File

@@ -19,6 +19,7 @@ import (
"context"
"encoding/json"
"fmt"
"io/fs"
"net/http"
"net/http/httptest"
"net/url"
@@ -101,9 +102,10 @@ func TestOIDCInitialization(t *testing.T) {
config := OIDC{}
err := config.initialize()
assert.NoError(t, err)
secret := "jRsmE0SWnuZjP7djBqNq0mrf8QN77j2c"
config = OIDC{
ClientID: "sftpgo-client",
ClientSecret: "jRsmE0SWnuZjP7djBqNq0mrf8QN77j2c",
ClientSecret: util.GenerateUniqueID(),
ConfigURL: fmt.Sprintf("http://%v/", oidcMockAddr),
RedirectBaseURL: "http://127.0.0.1:8081/",
UsernameField: "preferred_username",
@@ -114,10 +116,19 @@ func TestOIDCInitialization(t *testing.T) {
assert.Contains(t, err.Error(), "oidc: required scope \"openid\" is not set")
}
config.Scopes = []string{oidc.ScopeOpenID}
config.ClientSecretFile = "missing file"
err = config.initialize()
assert.ErrorIs(t, err, fs.ErrNotExist)
secretFile := filepath.Join(os.TempDir(), util.GenerateUniqueID())
defer os.Remove(secretFile)
err = os.WriteFile(secretFile, []byte(secret), 0600)
assert.NoError(t, err)
config.ClientSecretFile = secretFile
err = config.initialize()
if assert.Error(t, err) {
assert.Contains(t, err.Error(), "oidc: unable to initialize provider")
}
assert.Equal(t, secret, config.ClientSecret)
config.ConfigURL = fmt.Sprintf("http://%v/auth/realms/sftpgo", oidcMockAddr)
err = config.initialize()
assert.NoError(t, err)