Files
opencloud/services/auth-api/pkg/auth-api/authapi_test.go
Pascal Bleser b7b540a3c8 groupware: add OIDC authentication support between Groupware backend and Stalwart
* 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
2026-04-13 16:40:15 +02:00

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"])
}
}