diff --git a/internal/app/app.go b/internal/app/app.go index 1af137d..f563587 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -134,7 +134,7 @@ func (a *App) initServiceProvider(_ context.Context) error { } func (a *App) initGRPCServer(ctx context.Context) error { - c := a.serviceProvider.InterceptorClient() + c := a.serviceProvider.InterceptorClient(ctx) a.grpcServer = grpc.NewServer( grpc.Creds(insecure.NewCredentials()), diff --git a/internal/app/service_provider.go b/internal/app/service_provider.go index e3bdbfb..5d508d2 100644 --- a/internal/app/service_provider.go +++ b/internal/app/service_provider.go @@ -4,9 +4,6 @@ import ( "context" "log" - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" - "github.com/kirillmc/platform_common/pkg/closer" "github.com/kirillmc/platform_common/pkg/db" "github.com/kirillmc/platform_common/pkg/db/pg" @@ -14,7 +11,6 @@ import ( "github.com/kirillmc/trainings-auth/internal/api/auth" "github.com/kirillmc/trainings-auth/internal/api/user" "github.com/kirillmc/trainings-auth/internal/client/rpc" - accessClient "github.com/kirillmc/trainings-auth/internal/client/rpc/access" "github.com/kirillmc/trainings-auth/internal/config" "github.com/kirillmc/trainings-auth/internal/config/env" "github.com/kirillmc/trainings-auth/internal/interceptor" @@ -24,7 +20,6 @@ import ( accessService "github.com/kirillmc/trainings-auth/internal/service/access" authService "github.com/kirillmc/trainings-auth/internal/service/auth" userService "github.com/kirillmc/trainings-auth/internal/service/user" - descAccess "github.com/kirillmc/trainings-auth/pkg/access_v1" ) // содержит все зависимости, необходимые в рамках приложения @@ -124,29 +119,29 @@ func (s *serviceProvider) AccessConfig() config.AccessConfig { return s.accessConfig } -func (s *serviceProvider) AccessClient() rpc.AccessClient { - if s.accessClient == nil { - cfg := s.AccessConfig() - - conn, err := grpc.Dial( - cfg.Address(), - grpc.WithTransportCredentials(insecure.NewCredentials()), - ) - if err != nil { - log.Fatalf("failed to connect to access: %v", err) - } - - s.accessClient = accessClient.NewAccessClient(descAccess.NewAccessV1Client(conn)) - } - - return s.accessClient -} - -func (s *serviceProvider) InterceptorClient() *interceptor.Interceptor { +//func (s *serviceProvider) AccessClient() rpc.AccessClient { +// if s.accessClient == nil { +// cfg := s.AccessConfig() +// +// conn, err := grpc.Dial( +// cfg.Address(), +// grpc.WithTransportCredentials(insecure.NewCredentials()), +// ) +// if err != nil { +// log.Fatalf("failed to connect to access: %v", err) +// } +// +// s.accessClient = accessClient.NewAccessClient(descAccess.UnimplementedAccessV1Server{}) +// } +// +// return s.accessClient +//} + +func (s *serviceProvider) InterceptorClient(ctx context.Context) *interceptor.Interceptor { log.Printf("s.interceptorClient == nil: %v", s.interceptorClient == nil) if s.interceptorClient == nil { s.interceptorClient = &interceptor.Interceptor{ - Client: s.AccessClient(), + Client: s.AccessService(ctx), } log.Printf("s.interceptorClient == nil: %v", s.interceptorClient == nil) } diff --git a/internal/client/rpc/access/access.go b/internal/client/rpc/access/access.go index fb67403..bb2220e 100644 --- a/internal/client/rpc/access/access.go +++ b/internal/client/rpc/access/access.go @@ -4,25 +4,23 @@ import ( "context" "github.com/kirillmc/trainings-auth/internal/client/rpc" - descAccess "github.com/kirillmc/trainings-auth/pkg/access_v1" + "github.com/kirillmc/trainings-auth/internal/service" ) type accessClient struct { - client descAccess.AccessV1Client + client service.AccessService } var _ rpc.AccessClient = (*accessClient)(nil) -func NewAccessClient(client descAccess.AccessV1Client) rpc.AccessClient { +func NewAccessClient(client service.AccessService) rpc.AccessClient { return &accessClient{ client: client, } } func (c *accessClient) Check(ctx context.Context, endpoint string) error { - _, err := c.client.Check(ctx, &descAccess.CheckRequest{ - EndpointAddress: endpoint, - }) + err := c.client.Check(ctx, endpoint) return err } diff --git a/internal/interceptor/access.go b/internal/interceptor/access.go index 4cc7a9c..fbb34d2 100644 --- a/internal/interceptor/access.go +++ b/internal/interceptor/access.go @@ -7,11 +7,11 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/metadata" - "github.com/kirillmc/trainings-auth/internal/client/rpc" + "github.com/kirillmc/trainings-auth/internal/service" ) type Interceptor struct { - Client rpc.AccessClient + Client service.AccessService } func (i *Interceptor) PolicyInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { @@ -19,10 +19,11 @@ func (i *Interceptor) PolicyInterceptor(ctx context.Context, req interface{}, in if !ok { return nil, errors.New("metadata is not provided") } - - err := i.Client.Check(metadata.NewOutgoingContext(ctx, md), info.FullMethod) - if err != nil { - return nil, err + if info.FullMethod != "/auth_v1.AuthV1/Login" && info.FullMethod != "/auth_v1.AuthV1/GetAccessToken" { + err := i.Client.Check(metadata.NewOutgoingContext(ctx, md), info.FullMethod) + if err != nil { + return nil, err + } } return handler(ctx, req)