bump mockery, add test stub for oidc_auth.go, align mock generation (#8321)
* bump mockery, add test stub for oidc_auth.go Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * use .mockery.yaml for all mocks Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * drop legacy go:generate mockery Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * align mock placement Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> --------- Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"time"
|
||||
|
||||
"github.com/golang-jwt/jwt/v4"
|
||||
. "github.com/onsi/ginkgo/v2"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/owncloud/ocis/v2/ocis-pkg/log"
|
||||
"github.com/owncloud/ocis/v2/ocis-pkg/oidc"
|
||||
oidcmocks "github.com/owncloud/ocis/v2/ocis-pkg/oidc/mocks"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"go-micro.dev/v4/store"
|
||||
)
|
||||
|
||||
var _ = Describe("Authenticating requests", Label("OIDCAuthenticator"), func() {
|
||||
var authenticator Authenticator
|
||||
|
||||
oc := oidcmocks.OIDCClient{}
|
||||
oc.On("VerifyAccessToken", mock.Anything, mock.Anything).Return(
|
||||
oidc.RegClaimsWithSID{
|
||||
SessionID: "a-session-id",
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
ExpiresAt: jwt.NewNumericDate(time.Unix(1147483647, 0)),
|
||||
},
|
||||
}, jwt.MapClaims{
|
||||
"sid": "a-session-id",
|
||||
"exp": 1147483647,
|
||||
},
|
||||
nil,
|
||||
)
|
||||
/*
|
||||
// to test with skipUserInfo: true, we need to also use an interface so we can mock the UserInfo.Claim call
|
||||
oc.On("UserInfo", mock.Anything, mock.Anything).Return(
|
||||
&oidc.UserInfo{
|
||||
Subject: "my-sub",
|
||||
EmailVerified: true,
|
||||
Email: "test@example.org",
|
||||
},
|
||||
nil,
|
||||
)
|
||||
*/
|
||||
|
||||
BeforeEach(func() {
|
||||
authenticator = &OIDCAuthenticator{
|
||||
OIDCIss: "http://idp.example.com",
|
||||
Logger: log.NewLogger(),
|
||||
oidcClient: &oc,
|
||||
userInfoCache: store.NewMemoryStore(),
|
||||
skipUserInfo: true,
|
||||
}
|
||||
})
|
||||
|
||||
When("the request contains correct data", func() {
|
||||
It("should successfully authenticate", func() {
|
||||
req := httptest.NewRequest(http.MethodGet, "http://example.com/example/path", http.NoBody)
|
||||
req.Header.Set(_headerAuthorization, "Bearer jwt.token.sig")
|
||||
|
||||
req2, valid := authenticator.Authenticate(req)
|
||||
|
||||
Expect(valid).To(Equal(true))
|
||||
Expect(req2).ToNot(BeNil())
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -39,7 +39,7 @@ type Options struct {
|
||||
SettingsRoleService settingssvc.RoleService
|
||||
// PoliciesProviderService for policy evaluation
|
||||
PoliciesProviderService policiessvc.PoliciesProviderService
|
||||
// OIDCProviderFunc to lazily initialize an oidc provider, must be set for the oidc_auth middleware
|
||||
// OIDCClient to fetch user info and verify tokens, must be set for the oidc_auth middleware
|
||||
OIDCClient oidc.OIDCClient
|
||||
// OIDCIss is the oidcAuth-issuer
|
||||
OIDCIss string
|
||||
|
||||
@@ -11,19 +11,17 @@ import (
|
||||
"testing"
|
||||
|
||||
gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
|
||||
"github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool"
|
||||
cs3mocks "github.com/cs3org/reva/v2/tests/cs3mocks/mocks"
|
||||
. "github.com/onsi/gomega"
|
||||
pMessage "github.com/owncloud/ocis/v2/protogen/gen/ocis/messages/policies/v0"
|
||||
policiesPG "github.com/owncloud/ocis/v2/protogen/gen/ocis/services/policies/v0"
|
||||
"github.com/owncloud/ocis/v2/protogen/gen/ocis/services/policies/v0/mocks"
|
||||
"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware"
|
||||
"github.com/owncloud/ocis/v2/services/webdav/pkg/net"
|
||||
"github.com/stretchr/testify/mock"
|
||||
"go-micro.dev/v4/client"
|
||||
"google.golang.org/grpc"
|
||||
|
||||
cs3mocks "github.com/cs3org/reva/v2/tests/cs3mocks/mocks"
|
||||
"github.com/owncloud/ocis/v2/services/proxy/mocks"
|
||||
"github.com/owncloud/ocis/v2/services/webdav/pkg/net"
|
||||
|
||||
"github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool"
|
||||
pMessage "github.com/owncloud/ocis/v2/protogen/gen/ocis/messages/policies/v0"
|
||||
policiesPG "github.com/owncloud/ocis/v2/protogen/gen/ocis/services/policies/v0"
|
||||
"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware"
|
||||
)
|
||||
|
||||
func TestPolicies_NoQuery_PassThrough(t *testing.T) {
|
||||
|
||||
@@ -16,8 +16,6 @@ var (
|
||||
ErrNotSupported = errors.New("operation not supported")
|
||||
)
|
||||
|
||||
//go:generate mockery --name=UserBackend
|
||||
|
||||
// UserBackend allows the proxy to retrieve users from different user-backends (accounts-service, CS3)
|
||||
type UserBackend interface {
|
||||
GetUserByClaims(ctx context.Context, claim, value string) (*cs3.User, string, error)
|
||||
|
||||
@@ -11,8 +11,6 @@ import (
|
||||
"github.com/owncloud/ocis/v2/services/proxy/pkg/config"
|
||||
)
|
||||
|
||||
//go:generate mockery --name=UserRoleAssigner
|
||||
|
||||
// UserRoleAssigner allows providing different implementations for how users get their default roles
|
||||
// assigned by the proxy during authentication
|
||||
type UserRoleAssigner interface {
|
||||
|
||||
Reference in New Issue
Block a user