Skip to content

Commit

Permalink
inerceptor added
Browse files Browse the repository at this point in the history
  • Loading branch information
kirillmc committed Apr 18, 2024
1 parent c127cbf commit c2a3936
Show file tree
Hide file tree
Showing 28 changed files with 255 additions and 58 deletions.
12 changes: 12 additions & 0 deletions .idea/dataSources.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/protoeditor.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/swagger-settings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/trainings-auth.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions api/auth_v1/auth.proto
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,21 @@ message LoginRequest{
}

message LoginResponse{
string refresh_token=1;
string refresh_token = 1;
}

message GetRefreshTokenRequest{
string old_refresh_token=1;
string old_refresh_token = 1;
}

message GetRefreshTokenResponse{
string refresh_token=1;
string refresh_token = 1;
}

message GetAccessTokenRequest{
string refresh_token=1;
string refresh_token = 1;
}

message GetAccessTokenResponse{
string access_token=1;
string access_token = 1;
}
4 changes: 1 addition & 3 deletions internal/api/access/check.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package access

import (
"context"
"log"

"google.golang.org/protobuf/types/known/emptypb"

Expand All @@ -12,9 +11,8 @@ import (
func (i *Implementation) Check(ctx context.Context, req *descAccess.CheckRequest) (*emptypb.Empty, error) {
err := i.accessService.Check(ctx, req.GetEndpointAddress())
if err != nil {
log.Print("Error in api layer")
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
2 changes: 1 addition & 1 deletion internal/api/user/lock_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ func (i *Implementation) LockUser(ctx context.Context, req *desc.LockUserRequest
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
2 changes: 1 addition & 1 deletion internal/api/user/unlock_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ func (i *Implementation) UnlockUser(ctx context.Context, req *desc.UnlockUserReq
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
2 changes: 1 addition & 1 deletion internal/api/user/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ func (i *Implementation) Update(ctx context.Context, req *desc.UpdateRequest) (*
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
2 changes: 1 addition & 1 deletion internal/api/user/update_password.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ func (i *Implementation) UpdatePassword(ctx context.Context, req *desc.UpdatePas
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
2 changes: 1 addition & 1 deletion internal/api/user/update_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ func (i *Implementation) UpdateRole(ctx context.Context, req *desc.UpdateRoleReq
return nil, err
}

return nil, nil
return &emptypb.Empty{}, nil
}
9 changes: 5 additions & 4 deletions internal/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ import (
)

const (
SERVICE_PEM = "tls/service.pem"
SERVICE_KEY = "tls/service.key"
serversNum = 3
)

var configPath string
Expand Down Expand Up @@ -64,7 +63,7 @@ func (a *App) Run() error {
}()

wg := sync.WaitGroup{}
wg.Add(3)
wg.Add(serversNum)

go func() {
defer wg.Done()
Expand Down Expand Up @@ -135,10 +134,12 @@ func (a *App) initServiceProvider(_ context.Context) error {
}

func (a *App) initGRPCServer(ctx context.Context) error {
c := a.serviceProvider.InterceptorClient()

a.grpcServer = grpc.NewServer(
grpc.Creds(insecure.NewCredentials()),
//grpc.Creds(insecure.NewCredentials()),
grpc.UnaryInterceptor(interceptor.ValidateInerceptor),
grpc.ChainUnaryInterceptor(c.PolicyInterceptor, interceptor.ValidateInerceptor),
)

reflection.Register(a.grpcServer) // рефлексия вкл для постмана
Expand Down
65 changes: 60 additions & 5 deletions internal/app/service_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,27 @@ 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"
"github.com/kirillmc/trainings-auth/internal/api/access"
"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"
"github.com/kirillmc/trainings-auth/internal/repository"
userRepo "github.com/kirillmc/trainings-auth/internal/repository/user"
"github.com/kirillmc/trainings-auth/internal/service"
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"
)

// содержит все зависимости, необходимые в рамках приложения
Expand All @@ -27,9 +34,13 @@ type serviceProvider struct {
httpConfig config.HTTPConfig
swaggerConfig config.SwaggerConfig

dbClient db.Client
dbClient db.Client
accessClient rpc.AccessClient
interceptorClient *interceptor.Interceptor

userRepository repository.UserRepository
userRepository repository.UserRepository
accessRepository repository.AccessRepository
authRepository repository.AuthRepository

userService service.UserService
accessService service.AccessService
Expand Down Expand Up @@ -99,6 +110,34 @@ func (s *serviceProvider) SwaggerConfig() config.SwaggerConfig {
return s.swaggerConfig
}

func (s *serviceProvider) AccessClient() rpc.AccessClient {
if s.accessClient == nil {
cfg := s.GRPCConfig()

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 {
if s.interceptorClient == nil {
s.interceptorClient = &interceptor.Interceptor{
Client: s.AccessClient(),
}
}

return s.interceptorClient
}

func (s *serviceProvider) DBClient(ctx context.Context) db.Client {
if s.dbClient == nil {
cl, err := pg.New(ctx, s.PGConfig().DSN())
Expand All @@ -120,12 +159,28 @@ func (s *serviceProvider) DBClient(ctx context.Context) db.Client {

func (s *serviceProvider) UserRepository(ctx context.Context) repository.UserRepository {
if s.userRepository == nil {
s.userRepository = userRepo.NewRepository(s.DBClient(ctx))
s.userRepository = userRepo.NewUserRepository(s.DBClient(ctx))
}

return s.userRepository
}

func (s *serviceProvider) AccessRepository(ctx context.Context) repository.AccessRepository {
if s.accessRepository == nil {
s.accessRepository = userRepo.NewAccessRepository(s.DBClient(ctx))
}

return s.accessRepository
}

func (s *serviceProvider) AuthRepository(ctx context.Context) repository.AuthRepository {
if s.authRepository == nil {
s.authRepository = userRepo.NewAuthRepository(s.DBClient(ctx))
}

return s.authRepository
}

func (s *serviceProvider) UserService(ctx context.Context) service.UserService {
if s.userService == nil {
s.userService = userService.NewService(s.UserRepository(ctx))
Expand All @@ -136,15 +191,15 @@ func (s *serviceProvider) UserService(ctx context.Context) service.UserService {

func (s *serviceProvider) AccessService(ctx context.Context) service.AccessService {
if s.accessService == nil {
s.accessService = accessService.NewService(s.UserRepository(ctx))
s.accessService = accessService.NewService(s.AccessRepository(ctx))
}

return s.accessService
}

func (s *serviceProvider) AuthService(ctx context.Context) service.AuthService {
if s.authService == nil {
s.authService = authService.NewService(s.UserRepository(ctx))
s.authService = authService.NewService(s.AuthRepository(ctx))
}

return s.authService
Expand Down
27 changes: 27 additions & 0 deletions internal/client/rpc/access/access.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package access

import (
"context"

"github.com/kirillmc/trainings-auth/internal/client/rpc"
descAccess "github.com/kirillmc/trainings-auth/pkg/access_v1"
)

type accessClient struct {
client descAccess.AccessV1Client
}

var _ rpc.AccessClient = (*accessClient)(nil)

func NewAccessClient(client descAccess.AccessV1Client) 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,
})
return err
}
7 changes: 7 additions & 0 deletions internal/client/rpc/rpc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package rpc

import "context"

type AccessClient interface {
Check(ctx context.Context, endpoint string) error
}
14 changes: 7 additions & 7 deletions internal/converter/user.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ func ToUserModelCreateFromDesc(user *desc.CreateRequest) *model.UserToCreate {
func ToUserModelUpdateFromDesc(user *desc.UpdateRequest) *model.UserToUpdate {
return &model.UserToUpdate{
Id: user.Id,
Login: user.Info.Login,
Email: user.Info.Email,
Name: user.Info.Name,
Surname: user.Info.Surname,
Avatar: user.Info.Avatar,
Login: model.Create(user.Info.Login.Value),
Email: model.Create(user.Info.Email.Value),
Name: model.Create(user.Info.Name.Value),
Surname: model.Create(user.Info.Surname.Value),
Avatar: model.Create(user.Info.Avatar.Value),
}
}

Expand All @@ -66,8 +66,8 @@ func ToUserToUnlockFromDesc(unlock *desc.UnlockUserRequest) *model.UserToUnlock
func ToPasswordToUpdateFromDesc(password *desc.UpdatePasswordRequest) *model.PasswordToUpdate {
return &model.PasswordToUpdate{
UserId: password.UserId,
Password: password.Info.Password,
ConfirmPassword: password.Info.PasswordConfirm,
Password: model.Create(password.Info.Password.Value),
ConfirmPassword: model.Create(password.Info.PasswordConfirm.Value),
}
}
func ToUserToLoginFromDescAuth(user *descAuth.LoginRequest) *model.UserToLogin {
Expand Down
Loading

0 comments on commit c2a3936

Please sign in to comment.