Merge pull request #1628 from micro/registry

Misc Muti-Tenancy / Auth Fixes
This commit is contained in:
ben-toogood 2020-05-13 16:53:39 +01:00 committed by GitHub
commit cf61d98635
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 9 deletions

View File

@ -53,6 +53,12 @@ func newService(opts ...Option) Service {
server.WrapHandler(wrapper.AuthHandler(authFn)),
)
// set the client in the service implementations
options.Auth.Init(auth.WithClient(options.Client))
options.Registry.Init(registrySrv.WithClient(options.Client))
options.Runtime.Init(runtime.WithClient(options.Client))
options.Store.Init(store.WithClient(options.Client))
// set opts
service.opts = options
@ -116,7 +122,10 @@ func (s *service) Init(opts ...Option) {
name := s.opts.Cmd.App().Name
s.opts.Store.Init(store.Table(name))
// Set the client for the micro clients
// Reset the clients for the micro services, this is done
// previously in newService for micro (since init is never called)
// however it needs to be done again here since for normal go-micro
// services the implementation may have changed by CLI flags.
s.opts.Auth.Init(auth.WithClient(s.Client()))
s.opts.Registry.Init(registrySrv.WithClient(s.Client()))
s.opts.Runtime.Init(runtime.WithClient(s.Client()))
@ -183,6 +192,11 @@ func (s *service) Stop() error {
}
func (s *service) Run() error {
// generate an auth account
if err := s.generateAccount(); err != nil {
return err
}
// register the debug handler
s.opts.Server.Handle(
s.opts.Server.NewHandler(
@ -208,11 +222,6 @@ func (s *service) Run() error {
logger.Infof("Starting [service] %s", s.Name())
}
// generate an auth account
if err := s.registerAuthAccount(); err != nil {
return err
}
if err := s.Start(); err != nil {
return err
}
@ -232,7 +241,7 @@ func (s *service) Run() error {
return s.Stop()
}
func (s *service) registerAuthAccount() error {
func (s *service) generateAccount() error {
// generate a new auth account for the service
name := fmt.Sprintf("%v-%v", s.Name(), s.Server().Options().Id)
opts := []auth.GenerateOption{

View File

@ -134,7 +134,6 @@ func (m *memoryStore) Close() error {
}
func (m *memoryStore) Init(opts ...store.Option) error {
m.store.Flush()
for _, o := range opts {
o(&m.options)
}

View File

@ -248,7 +248,7 @@ func basictest(s store.Store, t *testing.T) {
}
}
s.Init()
s.Close() // reset the store
for i := 0; i < 10; i++ {
s.Write(&store.Record{
Key: fmt.Sprintf("a%d", i),