mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
0a970aef8a
This moves the OpenID Connect storage from memory into the SQL storage, making it persistent and allowing it to be used with clustered deployments like the rest of Authelia.
127 lines
3.7 KiB
Go
127 lines
3.7 KiB
Go
package oidc
|
|
|
|
/*
|
|
|
|
func TestOpenIDConnectStore_GetClientPolicy(t *testing.T) {
|
|
s := NewOpenIDConnectStore(&schema.OpenIDConnectConfiguration{
|
|
IssuerPrivateKey: exampleIssuerPrivateKey,
|
|
Clients: []schema.OpenIDConnectClientConfiguration{
|
|
{
|
|
ID: "myclient",
|
|
Description: "myclient desc",
|
|
Policy: "one_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
},
|
|
{
|
|
ID: "myotherclient",
|
|
Description: "myclient desc",
|
|
Policy: "two_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
},
|
|
},
|
|
})
|
|
|
|
policyOne := s.GetClientPolicy("myclient")
|
|
assert.Equal(t, authorization.OneFactor, policyOne)
|
|
|
|
policyTwo := s.GetClientPolicy("myotherclient")
|
|
assert.Equal(t, authorization.TwoFactor, policyTwo)
|
|
|
|
policyInvalid := s.GetClientPolicy("invalidclient")
|
|
assert.Equal(t, authorization.TwoFactor, policyInvalid)
|
|
}
|
|
|
|
func TestOpenIDConnectStore_GetInternalClient(t *testing.T) {
|
|
s := NewOpenIDConnectStore(&schema.OpenIDConnectConfiguration{
|
|
IssuerPrivateKey: exampleIssuerPrivateKey,
|
|
Clients: []schema.OpenIDConnectClientConfiguration{
|
|
{
|
|
ID: "myclient",
|
|
Description: "myclient desc",
|
|
Policy: "one_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
},
|
|
},
|
|
})
|
|
|
|
client, err := s.GetClient(context.Background(), "myinvalidclient")
|
|
assert.EqualError(t, err, "not_found")
|
|
assert.Nil(t, client)
|
|
|
|
client, err = s.GetClient(context.Background(), "myclient")
|
|
require.NoError(t, err)
|
|
require.NotNil(t, client)
|
|
assert.Equal(t, "myclient", client.GetID())
|
|
}
|
|
|
|
func TestOpenIDConnectStore_GetInternalClient_ValidClient(t *testing.T) {
|
|
c1 := schema.OpenIDConnectClientConfiguration{
|
|
ID: "myclient",
|
|
Description: "myclient desc",
|
|
Policy: "one_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
}
|
|
|
|
s := NewOpenIDConnectStore(&schema.OpenIDConnectConfiguration{
|
|
IssuerPrivateKey: exampleIssuerPrivateKey,
|
|
Clients: []schema.OpenIDConnectClientConfiguration{c1},
|
|
})
|
|
|
|
client, err := s.GetFullClient(c1.ID)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, client)
|
|
assert.Equal(t, client.ID, c1.ID)
|
|
assert.Equal(t, client.Description, c1.Description)
|
|
assert.Equal(t, client.Scopes, c1.Scopes)
|
|
assert.Equal(t, client.GrantTypes, c1.GrantTypes)
|
|
assert.Equal(t, client.ResponseTypes, c1.ResponseTypes)
|
|
assert.Equal(t, client.RedirectURIs, c1.RedirectURIs)
|
|
assert.Equal(t, client.Policy, authorization.OneFactor)
|
|
assert.Equal(t, client.Secret, []byte(c1.Secret))
|
|
}
|
|
|
|
func TestOpenIDConnectStore_GetInternalClient_InvalidClient(t *testing.T) {
|
|
c1 := schema.OpenIDConnectClientConfiguration{
|
|
ID: "myclient",
|
|
Description: "myclient desc",
|
|
Policy: "one_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
}
|
|
|
|
s := NewOpenIDConnectStore(&schema.OpenIDConnectConfiguration{
|
|
IssuerPrivateKey: exampleIssuerPrivateKey,
|
|
Clients: []schema.OpenIDConnectClientConfiguration{c1},
|
|
})
|
|
|
|
client, err := s.GetFullClient("another-client")
|
|
assert.Nil(t, client)
|
|
assert.EqualError(t, err, "not_found")
|
|
}
|
|
|
|
func TestOpenIDConnectStore_IsValidClientID(t *testing.T) {
|
|
s := NewOpenIDConnectStore(&schema.OpenIDConnectConfiguration{
|
|
IssuerPrivateKey: exampleIssuerPrivateKey,
|
|
Clients: []schema.OpenIDConnectClientConfiguration{
|
|
{
|
|
ID: "myclient",
|
|
Description: "myclient desc",
|
|
Policy: "one_factor",
|
|
Scopes: []string{"openid", "profile"},
|
|
Secret: "mysecret",
|
|
},
|
|
},
|
|
})
|
|
|
|
validClient := s.IsValidClientID("myclient")
|
|
invalidClient := s.IsValidClientID("myinvalidclient")
|
|
|
|
assert.True(t, validClient)
|
|
assert.False(t, invalidClient)
|
|
}.
|
|
*/
|