Skip to content

Commit 64f3b87

Browse files
authored
feat(api): signin register (#6110)
1 parent 3c0a76c commit 64f3b87

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+597
-399
lines changed

.build/go.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ $(GO_GOJUNIT):
8888

8989
GO_COBERTURA = ${GOPATH}/bin/gocover-cobertura
9090
$(GO_COBERTURA):
91-
go get -u github.com/t-yuki/gocover-cobertura
91+
go get -u github.com/richardlt/gocover-cobertura
9292

9393
GO_XUTOOLS = ${GOPATH}/bin/xutools
9494
$(GO_XUTOOLS):

cli/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ $(GO_GOJUNIT):
1515
go get -u github.com/jstemmer/go-junit-report
1616

1717
$(GO_COBERTURA):
18-
go get -u github.com/t-yuki/gocover-cobertura
18+
go get -u github.com/richardlt/gocover-cobertura
1919

2020
$(TARGET_DIR):
2121
@mkdir -p $(TARGET_DIR)

contrib/grpcplugins/action/plugin-archive/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ require (
5858
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5959
github.com/sirupsen/logrus v1.8.1 // indirect
6060
github.com/spf13/afero v1.8.1 // indirect
61+
github.com/spf13/cast v1.4.1 // indirect
6162
github.com/ulikunitz/xz v0.5.10 // indirect
6263
github.com/xanzy/ssh-agent v0.3.0 // indirect
6364
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-artifactory-release-bundle-distribute/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ require (
5555
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5656
github.com/sirupsen/logrus v1.8.1 // indirect
5757
github.com/spf13/afero v1.8.1 // indirect
58+
github.com/spf13/cast v1.4.1 // indirect
5859
github.com/ulikunitz/xz v0.5.9 // indirect
5960
github.com/xanzy/ssh-agent v0.3.0 // indirect
6061
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-download/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ require (
5858
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5959
github.com/sirupsen/logrus v1.8.1 // indirect
6060
github.com/spf13/afero v1.8.1 // indirect
61+
github.com/spf13/cast v1.4.1 // indirect
6162
github.com/ulikunitz/xz v0.5.9 // indirect
6263
github.com/xanzy/ssh-agent v0.3.0 // indirect
6364
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-group-tmpl/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ require (
5555
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5656
github.com/sirupsen/logrus v1.8.1 // indirect
5757
github.com/spf13/afero v1.8.1 // indirect
58+
github.com/spf13/cast v1.4.1 // indirect
5859
github.com/ulikunitz/xz v0.5.9 // indirect
5960
github.com/xanzy/ssh-agent v0.3.0 // indirect
6061
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-kafka-publish/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ require (
101101
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
102102
github.com/sirupsen/logrus v1.8.1 // indirect
103103
github.com/spf13/afero v1.8.1 // indirect
104+
github.com/spf13/cast v1.4.1 // indirect
104105
github.com/spf13/cobra v1.1.1 // indirect
105106
github.com/spf13/pflag v1.0.5 // indirect
106107
github.com/ulikunitz/xz v0.5.9 // indirect

contrib/grpcplugins/action/plugin-marathon/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ require (
7979
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
8080
github.com/sirupsen/logrus v1.8.1 // indirect
8181
github.com/spf13/afero v1.8.1 // indirect
82+
github.com/spf13/cast v1.4.1 // indirect
8283
github.com/spf13/cobra v1.1.1 // indirect
8384
github.com/spf13/pflag v1.0.5 // indirect
8485
github.com/ulikunitz/xz v0.5.9 // indirect

contrib/grpcplugins/action/plugin-npm-audit-parser/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ require (
5555
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5656
github.com/sirupsen/logrus v1.8.1 // indirect
5757
github.com/spf13/afero v1.8.1 // indirect
58+
github.com/spf13/cast v1.4.1 // indirect
5859
github.com/ulikunitz/xz v0.5.9 // indirect
5960
github.com/xanzy/ssh-agent v0.3.0 // indirect
6061
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-ssh-cmd/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ require (
5656
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5757
github.com/sirupsen/logrus v1.8.1 // indirect
5858
github.com/spf13/afero v1.8.1 // indirect
59+
github.com/spf13/cast v1.4.1 // indirect
5960
github.com/ulikunitz/xz v0.5.9 // indirect
6061
github.com/xanzy/ssh-agent v0.3.0 // indirect
6162
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-tmpl/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ require (
5555
github.com/sguiheux/go-coverage v0.0.0-20190710153556-287b082a7197 // indirect
5656
github.com/sirupsen/logrus v1.8.1 // indirect
5757
github.com/spf13/afero v1.8.1 // indirect
58+
github.com/spf13/cast v1.4.1 // indirect
5859
github.com/ulikunitz/xz v0.5.9 // indirect
5960
github.com/xanzy/ssh-agent v0.3.0 // indirect
6061
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

contrib/grpcplugins/action/plugin-venom/go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ require (
8686
github.com/sirupsen/logrus v1.8.1 // indirect
8787
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d // indirect
8888
github.com/spf13/afero v1.8.1 // indirect
89+
github.com/spf13/cast v1.4.1 // indirect
8990
github.com/ulikunitz/xz v0.5.9 // indirect
9091
github.com/xanzy/ssh-agent v0.3.0 // indirect
9192
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect

engine/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ $(GO_GOJUNIT):
5959
go get -u github.com/jstemmer/go-junit-report
6060

6161
$(GO_COBERTURA):
62-
go get -u github.com/t-yuki/gocover-cobertura
62+
go get -u github.com/richardlt/gocover-cobertura
6363

6464
$(GO_XUTOOLS):
6565
go get -u github.com/richardlt/xutools

engine/api/api_routes.go

-1
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ func (api *API) InitRouter() {
432432
r.Handle("/ws", ScopeNone(), r.GET(api.getWebsocketHandler))
433433

434434
// Engine µServices
435-
r.Handle("/services/register", Scope(sdk.AuthConsumerScopeService), r.POST(api.postServiceRegisterHandler, MaintenanceAware()))
436435
r.Handle("/services/heartbeat", Scope(sdk.AuthConsumerScopeService), r.POST(api.postServiceHearbeatHandler))
437436
r.Handle("/services/{type}", Scope(sdk.AuthConsumerScopeService), r.GET(api.getServiceHandler))
438437

engine/api/application_deployment_test.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,15 @@ func Test_postApplicationDeploymentStrategyConfigHandlerAsProvider(t *testing.T)
297297
localConsumer, err := authentication.LoadConsumerByTypeAndUserID(context.TODO(), api.mustDB(), sdk.ConsumerLocal, u.ID, authentication.LoadConsumerOptions.WithAuthentifiedUser)
298298
require.NoError(t, err)
299299

300-
_, jws, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), sdk.RandomString(10), 0, localConsumer, u.GetGroupIDs(),
301-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject))
300+
consumerOpts := builtin.NewConsumerOptions{
301+
Name: sdk.RandomString(10),
302+
Description: sdk.RandomString(10),
303+
Duration: 0,
304+
GroupIDs: u.GetGroupIDs(),
305+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject),
306+
}
307+
308+
_, jws, err := builtin.NewConsumer(context.TODO(), db, consumerOpts, localConsumer)
302309
require.NoError(t, err)
303310

304311
pkey := sdk.RandomString(10)

engine/api/application_test.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,16 @@ func Test_postApplicationMetadataHandler_AsProvider(t *testing.T) {
3636
u, _ := assets.InsertAdminUser(t, db)
3737
localConsumer, err := authentication.LoadConsumerByTypeAndUserID(context.TODO(), api.mustDB(), sdk.ConsumerLocal, u.ID, authentication.LoadConsumerOptions.WithAuthentifiedUser)
3838
require.NoError(t, err)
39-
_, jws, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), sdk.RandomString(10), 0, localConsumer, u.GetGroupIDs(),
40-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject))
39+
40+
consumerOptions := builtin.NewConsumerOptions{
41+
Name: sdk.RandomString(10),
42+
Description: sdk.RandomString(10),
43+
Duration: 0,
44+
GroupIDs: u.GetGroupIDs(),
45+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject),
46+
}
47+
48+
_, jws, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
4149
require.NoError(t, err)
4250

4351
pkey := sdk.RandomString(10)

engine/api/auth.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ func (api *API) postAuthSigninHandler() service.Handler {
133133
defer tx.Rollback() // nolint
134134

135135
var signupDone bool
136-
initToken, hasInitToken := req["init_token"]
137-
hasInitToken = hasInitToken && initToken != ""
136+
initToken := req.String("init_token")
137+
hasInitToken := initToken != ""
138138

139139
// Check if a consumer exists for consumer type and external user identifier
140140
consumer, err := authentication.LoadConsumerByTypeAndUserExternalID(ctx, tx, consumerType, userInfo.ExternalID,

engine/api/auth_builtin.go

+61-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package api
33
import (
44
"context"
55
"encoding/base64"
6+
"encoding/json"
67
"net/http"
78
"time"
89

@@ -12,6 +13,7 @@ import (
1213
"github.com/ovh/cds/engine/service"
1314
"github.com/ovh/cds/sdk"
1415
"github.com/ovh/cds/sdk/jws"
16+
cdslog "github.com/ovh/cds/sdk/log"
1517
)
1618

1719
func (api *API) postAuthBuiltinSigninHandler() service.Handler {
@@ -43,13 +45,18 @@ func (api *API) postAuthBuiltinSigninHandler() service.Handler {
4345
defer tx.Rollback() // nolint
4446

4547
// Check if a consumer exists for consumer type and external user identifier
46-
consumer, err := authentication.LoadConsumerByID(ctx, tx, userInfo.ExternalID)
48+
consumer, err := authentication.LoadConsumerByID(ctx, tx, userInfo.ExternalID, authentication.LoadConsumerOptions.WithAuthentifiedUser)
4749
if err != nil {
4850
return sdk.NewError(sdk.ErrForbidden, err)
4951
}
5052

53+
token, err := req.StringE("token")
54+
if err != nil {
55+
return err
56+
}
57+
5158
// Check the Token validity againts the IAT attribute
52-
if _, err := builtin.CheckSigninConsumerTokenIssuedAt(ctx, req["token"], consumer); err != nil {
59+
if _, err := builtin.CheckSigninConsumerTokenIssuedAt(ctx, token, consumer); err != nil {
5360
return sdk.NewError(sdk.ErrForbidden, err)
5461
}
5562

@@ -72,6 +79,54 @@ func (api *API) postAuthBuiltinSigninHandler() service.Handler {
7279
return err
7380
}
7481

82+
// Set those values (has it would be done in api.authOptionalMiddleware)
83+
ctx = context.WithValue(ctx, contextConsumer, consumer)
84+
ctx = context.WithValue(ctx, cdslog.AuthUserID, consumer.AuthentifiedUserID)
85+
SetTracker(w, cdslog.AuthUserID, consumer.AuthentifiedUserID)
86+
ctx = context.WithValue(ctx, cdslog.AuthConsumerID, consumer.ID)
87+
SetTracker(w, cdslog.AuthConsumerID, consumer.ID)
88+
89+
ctx = context.WithValue(ctx, contextSession, session)
90+
ctx = context.WithValue(ctx, cdslog.AuthSessionID, session.ID)
91+
SetTracker(w, cdslog.AuthSessionID, session.ID)
92+
ctx = context.WithValue(ctx, cdslog.AuthSessionIAT, session.Created.Unix())
93+
SetTracker(w, cdslog.AuthSessionIAT, session.Created.Unix())
94+
ctx = context.WithValue(ctx, contextSession, session)
95+
96+
var driverManifest *sdk.AuthDriverManifest
97+
if authDriver, ok := api.AuthenticationDrivers[consumer.Type]; ok {
98+
m := authDriver.GetManifest()
99+
driverManifest = &m
100+
}
101+
if driverManifest == nil {
102+
return sdk.WrapError(sdk.ErrUnauthorized, "consumer driver (%s) was not found", consumer.Type)
103+
}
104+
ctx = context.WithValue(ctx, contextDriverManifest, driverManifest)
105+
106+
// If the Signin has a *service* Payload, we have to perform the service registration
107+
srvInput, has := req["service"]
108+
var srv sdk.Service
109+
if has {
110+
btes, err := json.Marshal(srvInput)
111+
if err != nil {
112+
return sdk.NewError(sdk.ErrWrongRequest, err)
113+
}
114+
115+
if err := sdk.JSONUnmarshal(btes, &srv); err != nil {
116+
return sdk.NewError(sdk.ErrWrongRequest, err)
117+
}
118+
119+
ctx = context.WithValue(ctx, cdslog.AuthServiceName, srv.Name)
120+
SetTracker(w, cdslog.AuthServiceName, srv.Name)
121+
122+
if err := api.serviceRegister(ctx, tx, &srv); err != nil {
123+
return err
124+
}
125+
} else {
126+
ctx = context.WithValue(ctx, cdslog.AuthUsername, consumer.AuthentifiedUser.Username)
127+
SetTracker(w, cdslog.AuthUsername, consumer.AuthentifiedUser.Username)
128+
}
129+
75130
// Set a cookie with the jwt token
76131
api.SetCookie(w, service.JWTCookieName, jwt, session.ExpireAt, true)
77132

@@ -82,9 +137,10 @@ func (api *API) postAuthBuiltinSigninHandler() service.Handler {
82137

83138
// Prepare http response
84139
resp := sdk.AuthConsumerSigninResponse{
85-
Token: jwt,
86-
User: usr,
87-
APIURL: api.Config.URL.API,
140+
Token: jwt,
141+
User: usr,
142+
APIURL: api.Config.URL.API,
143+
Service: &srv,
88144
}
89145

90146
if err := tx.Commit(); err != nil {

engine/api/auth_builtin_test.go

+15-5
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ import (
1616
"github.com/stretchr/testify/require"
1717
)
1818

19-
func AuthentififyBuiltinConsumer(t *testing.T, api *API, jwsToken string) string {
19+
func AuthentififyBuiltinConsumer(t *testing.T, api *API, jwsToken string, srv *sdk.Service) string {
2020
uri := api.Router.GetRoute("POST", api.postAuthBuiltinSigninHandler, nil)
2121
require.NotEmpty(t, uri)
22-
btes, err := json.Marshal(sdk.AuthConsumerSigninRequest{"token": jwsToken})
22+
reqSignin := sdk.AuthConsumerSigninRequest{"token": jwsToken}
23+
if srv != nil {
24+
reqSignin["service"] = srv
25+
}
26+
btes, err := json.Marshal(reqSignin)
2327
require.NoError(t, err)
2428

2529
t.Logf("signin with jws : %s", jwsToken)
@@ -49,8 +53,14 @@ func Test_postAuthBuiltinSigninHandler(t *testing.T) {
4953
localConsumer, err := authentication.LoadConsumerByTypeAndUserID(context.TODO(), api.mustDB(), sdk.ConsumerLocal, usr.ID, authentication.LoadConsumerOptions.WithAuthentifiedUser)
5054
require.NoError(t, err)
5155

52-
_, jws, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), sdk.RandomString(10), 0, localConsumer, usr.GetGroupIDs(),
53-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject))
56+
consumerOptions := builtin.NewConsumerOptions{
57+
Name: sdk.RandomString(10),
58+
Description: sdk.RandomString(10),
59+
Duration: 0,
60+
GroupIDs: usr.GetGroupIDs(),
61+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeProject),
62+
}
63+
_, jws, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
5464
require.NoError(t, err)
55-
AuthentififyBuiltinConsumer(t, api, jws)
65+
AuthentififyBuiltinConsumer(t, api, jws, nil)
5666
}

engine/api/auth_consumer.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,16 @@ func (api *API) postConsumerByUserHandler() service.Handler {
8484
}
8585

8686
// Create the new built in consumer from request data
87-
newConsumer, token, err := builtin.NewConsumer(ctx, tx, reqData.Name, reqData.Description, reqData.ValidityPeriods.Latest().Duration,
88-
consumer, reqData.GroupIDs, reqData.ScopeDetails)
87+
consumerOpts := builtin.NewConsumerOptions{
88+
Name: reqData.Name,
89+
Description: reqData.Description,
90+
Duration: reqData.ValidityPeriods.Latest().Duration,
91+
GroupIDs: reqData.GroupIDs,
92+
Scopes: reqData.ScopeDetails,
93+
ServiceName: reqData.ServiceName,
94+
ServiceType: reqData.ServiceType,
95+
}
96+
newConsumer, token, err := builtin.NewConsumer(ctx, tx, consumerOpts, consumer)
8997
if err != nil {
9098
return err
9199
}

engine/api/auth_consumer_test.go

+32-10
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,13 @@ func Test_getConsumersByUserHandler(t *testing.T) {
2525
authentication.LoadConsumerOptions.WithAuthentifiedUser)
2626
require.NoError(t, err)
2727

28-
consumer, _, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), "", 0, localConsumer, nil,
29-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser))
28+
consumerOptions := builtin.NewConsumerOptions{
29+
Name: sdk.RandomString(10),
30+
Description: sdk.RandomString(10),
31+
Duration: 0,
32+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser),
33+
}
34+
consumer, _, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
3035
require.NoError(t, err)
3136

3237
uri := api.Router.GetRoute(http.MethodGet, api.getConsumersByUserHandler, map[string]string{
@@ -112,8 +117,13 @@ func Test_deleteConsumerByUserHandler(t *testing.T) {
112117
localConsumer, err := authentication.LoadConsumerByTypeAndUserID(context.TODO(), db, sdk.ConsumerLocal, u.ID,
113118
authentication.LoadConsumerOptions.WithAuthentifiedUser)
114119
require.NoError(t, err)
115-
newConsumer, _, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), "", 0, localConsumer, nil,
116-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeAccessToken))
120+
consumerOptions := builtin.NewConsumerOptions{
121+
Name: sdk.RandomString(10),
122+
Description: sdk.RandomString(10),
123+
Duration: 0,
124+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeAccessToken),
125+
}
126+
newConsumer, _, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
117127
require.NoError(t, err)
118128
cs, err := authentication.LoadConsumersByUserID(context.TODO(), db, u.ID)
119129
require.NoError(t, err)
@@ -152,8 +162,14 @@ func Test_postConsumerRegenByUserHandler(t *testing.T) {
152162
api.Router.Mux.ServeHTTP(rec, req)
153163
require.Equal(t, http.StatusForbidden, rec.Code)
154164

155-
builtinConsumer, signinToken1, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), "", 0, localConsumer, nil,
156-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser, sdk.AuthConsumerScopeAccessToken))
165+
consumerOptions := builtin.NewConsumerOptions{
166+
Name: sdk.RandomString(10),
167+
Description: sdk.RandomString(10),
168+
Duration: 0,
169+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser, sdk.AuthConsumerScopeAccessToken),
170+
}
171+
172+
builtinConsumer, signinToken1, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
157173
require.NoError(t, err)
158174
session, err := authentication.NewSession(context.TODO(), db, builtinConsumer, 5*time.Minute)
159175
require.NoError(t, err, "cannot create session")
@@ -297,8 +313,11 @@ func Test_getSessionsByUserHandler(t *testing.T) {
297313
authentication.LoadConsumerOptions.WithAuthentifiedUser)
298314
require.NoError(t, err)
299315

300-
consumer, _, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), "", 0, localConsumer, nil,
301-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser))
316+
consumerOptions := builtin.NewConsumerOptions{
317+
Name: sdk.RandomString(10),
318+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser),
319+
}
320+
consumer, _, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
302321
require.NoError(t, err)
303322
s2, err := authentication.NewSession(context.TODO(), db, consumer, time.Second)
304323
require.NoError(t, err)
@@ -330,8 +349,11 @@ func Test_deleteSessionByUserHandler(t *testing.T) {
330349
authentication.LoadConsumerOptions.WithAuthentifiedUser)
331350
require.NoError(t, err)
332351

333-
consumer, _, err := builtin.NewConsumer(context.TODO(), db, sdk.RandomString(10), "", 0, localConsumer, nil,
334-
sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser))
352+
consumerOptions := builtin.NewConsumerOptions{
353+
Name: sdk.RandomString(10),
354+
Scopes: sdk.NewAuthConsumerScopeDetails(sdk.AuthConsumerScopeUser),
355+
}
356+
consumer, _, err := builtin.NewConsumer(context.TODO(), db, consumerOptions, localConsumer)
335357
require.NoError(t, err)
336358
s2, err := authentication.NewSession(context.TODO(), db, consumer, time.Second)
337359
require.NoError(t, err)

0 commit comments

Comments
 (0)