Skip to content

Commit db9d2d4

Browse files
committed
subservers: start using the subservers manager
1 parent c74a264 commit db9d2d4

File tree

2 files changed

+148
-224
lines changed

2 files changed

+148
-224
lines changed

subservers/manager.go

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,16 @@ var (
2727

2828
// Manager manages a set of subServer objects.
2929
type Manager struct {
30-
servers []*subServerWrapper
31-
mu sync.RWMutex
30+
servers []*subServerWrapper
31+
permsMgr *PermissionsMgr
32+
mu sync.RWMutex
3233
}
3334

3435
// NewManager constructs a new subServerMgr.
35-
func NewManager() *Manager {
36-
return &Manager{}
36+
func NewManager(permsMgr *PermissionsMgr) *Manager {
37+
return &Manager{
38+
permsMgr: permsMgr,
39+
}
3740
}
3841

3942
// AddServer adds a new subServer to the manager's set.
@@ -121,7 +124,9 @@ func (s *Manager) GetRemoteConn(uri string) (bool, *grpc.ClientConn) {
121124
defer s.mu.RUnlock()
122125

123126
for _, ss := range s.servers {
124-
// TODO(positiveblue): check subserver permissions.
127+
if !s.permsMgr.IsSubServerURI(ss.subServer.Name(), uri) {
128+
continue
129+
}
125130

126131
if !ss.subServer.Remote() {
127132
return false, nil
@@ -145,7 +150,9 @@ func (s *Manager) ValidateMacaroon(ctx context.Context,
145150
defer s.mu.RUnlock()
146151

147152
for _, ss := range s.servers {
148-
// TODO(positiveblue): check subserver permissions.
153+
if !s.permsMgr.IsSubServerURI(ss.subServer.Name(), uri) {
154+
continue
155+
}
149156

150157
if ss.subServer.Remote() {
151158
return true, nil
@@ -173,7 +180,13 @@ func (s *Manager) HandledBy(uri string) (bool, SubServerName) {
173180
s.mu.RLock()
174181
defer s.mu.RUnlock()
175182

176-
// TODO(positiveblue): check subserver permissions.
183+
for _, ss := range s.servers {
184+
if !s.permsMgr.IsSubServerURI(ss.subServer.Name(), uri) {
185+
continue
186+
}
187+
188+
return true, ss.subServer.Name()
189+
}
177190

178191
return false, ""
179192
}
@@ -185,7 +198,9 @@ func (s *Manager) MacaroonPath(uri string) (bool, string) {
185198
defer s.mu.RUnlock()
186199

187200
for _, ss := range s.servers {
188-
// TODO(positiveblue): check subserver permissions.
201+
if !s.permsMgr.IsSubServerURI(ss.subServer.Name(), uri) {
202+
continue
203+
}
189204

190205
if ss.subServer.Remote() {
191206
return true, ss.subServer.RemoteConfig().MacaroonPath
@@ -205,7 +220,9 @@ func (s *Manager) ReadRemoteMacaroon(uri string) (macaroonPath string) {
205220
defer s.mu.RUnlock()
206221

207222
for _, ss := range s.servers {
208-
// TODO(positiveblue): check subserver permissions.
223+
if !s.permsMgr.IsSubServerURI(ss.subServer.Name(), uri) {
224+
continue
225+
}
209226

210227
if !ss.subServer.Remote() {
211228
return ""

0 commit comments

Comments
 (0)