mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-04-29 19:53:19 -04:00
* re-implement the auth-api service to authenticate Reva tokens following the OIDC Userinfo endpoint specification * pass the context where necessary and add an authenticator interface to the JMAP HTTP driver, in order to select between master authentication (which is used when GROUPWARE_JMAP_MASTER_USERNAME and GROUPWARE_JMAP_MASTER_PASSWORD are both set) and OIDC token forwarding through bearer auth * add Stalwart directory configuration "idmoidc" which uses the OpenCloud auth-api service API (/auth/) to validate the token it received as bearer auth from the Groupware backend's JMAP client, using it as an OIDC Userinfo endpoint * implement optional additional shared secret to secure the Userinfo service, as an additional path parameter
41 lines
787 B
Go
41 lines
787 B
Go
package auth_api
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestParseSecrets(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
{
|
|
m, err := parseSecrets("")
|
|
require.NoError(err)
|
|
require.Empty(m)
|
|
}
|
|
{
|
|
m, err := parseSecrets("app=123")
|
|
require.NoError(err)
|
|
require.Len(m, 1)
|
|
require.Contains(m, "123")
|
|
require.Equal(appId("app"), m["123"])
|
|
}
|
|
{
|
|
m, err := parseSecrets("app1=123;app2=23456")
|
|
require.NoError(err)
|
|
require.Len(m, 2)
|
|
require.Contains(m, "123")
|
|
require.Equal(appId("app1"), m["123"])
|
|
require.Contains(m, "23456")
|
|
require.Equal(appId("app2"), m["23456"])
|
|
}
|
|
{
|
|
m, err := parseSecrets("app=123=456")
|
|
require.NoError(err)
|
|
require.Len(m, 1)
|
|
require.Contains(m, "123=456")
|
|
require.Equal(appId("app"), m["123=456"])
|
|
}
|
|
}
|