Skip to content

Commit b6e5870

Browse files
authored
Merge pull request #5101 from kobergj/FixOCMAuthManager
Fix ocm auth manager
2 parents 8e8638e + cd723ac commit b6e5870

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Enhancement: Fix ocm auth manager
2+
3+
OCM auth manager had the Gatewayselector caching issue
4+
5+
https://github.com/cs3org/reva/pull/5101

pkg/auth/manager/ocmshares/ocmshares.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ func init() {
4646
}
4747

4848
type manager struct {
49-
c *config
50-
gw gateway.GatewayAPIClient
49+
c *config
50+
gateway *pool.Selector[gateway.GatewayAPIClient]
5151
}
5252

5353
type config struct {
@@ -64,11 +64,11 @@ func New(m map[string]interface{}) (auth.Manager, error) {
6464
if err := mgr.Configure(m); err != nil {
6565
return nil, err
6666
}
67-
gw, err := pool.GetGatewayServiceClient(mgr.c.GatewayAddr)
67+
gw, err := pool.GatewaySelector(mgr.c.GatewayAddr)
6868
if err != nil {
6969
return nil, err
7070
}
71-
mgr.gw = gw
71+
mgr.gateway = gw
7272

7373
return &mgr, nil
7474
}
@@ -84,8 +84,13 @@ func (m *manager) Configure(ml map[string]interface{}) error {
8484

8585
func (m *manager) Authenticate(ctx context.Context, ocmshare, sharedSecret string) (*userpb.User, map[string]*authpb.Scope, error) {
8686
log := appctx.GetLogger(ctx).With().Str("ocmshare", ocmshare).Logger()
87+
gwc, err := m.gateway.Next()
88+
if err != nil {
89+
return nil, nil, err
90+
}
91+
8792
// We need to use GetOCMShareByToken, as GetOCMShare would require a user in the context
88-
shareRes, err := m.gw.GetOCMShareByToken(ctx, &ocm.GetOCMShareByTokenRequest{
93+
shareRes, err := gwc.GetOCMShareByToken(ctx, &ocm.GetOCMShareByTokenRequest{
8994
Token: sharedSecret,
9095
})
9196

@@ -128,7 +133,7 @@ func (m *manager) Authenticate(ctx context.Context, ocmshare, sharedSecret strin
128133
},
129134
}
130135

131-
userRes, err := m.gw.GetAcceptedUser(ctx, &ocminvite.GetAcceptedUserRequest{
136+
userRes, err := gwc.GetAcceptedUser(ctx, &ocminvite.GetAcceptedUserRequest{
132137
RemoteUserId: u,
133138
Opaque: o,
134139
})

0 commit comments

Comments
 (0)