From efb72d7e8efb46010e347bb6a8d8bb503ee773aa Mon Sep 17 00:00:00 2001 From: Jayendra Date: Fri, 6 Dec 2019 12:48:20 +0530 Subject: [PATCH] Renamed AccountAdmin grpc service --- .../permissions/PermissionsInterceptor.java | 12 +++++++ ...countsImpl.java => AdminService2Impl.java} | 33 ++++++++++++++++--- ...minAccounts.proto => admin_account2.proto} | 4 +-- 3 files changed, 42 insertions(+), 7 deletions(-) rename src/main/java/biz/nynja/account/services/{AdminAccountsImpl.java => AdminService2Impl.java} (97%) rename src/main/proto/{AdminAccounts.proto => admin_account2.proto} (98%) diff --git a/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java b/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java index c5144b4..f11e383 100644 --- a/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java +++ b/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java @@ -10,6 +10,7 @@ import java.util.Base64; import java.util.Optional; import java.util.UUID; +import biz.nynja.account.services.AdminService2Impl; import org.lognet.springboot.grpc.GRpcGlobalInterceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,6 +53,9 @@ public class PermissionsInterceptor implements ServerInterceptor { private static final Class SERVICE_CLASS = AccountServiceImpl.class; private static final Class ADMIN_SERVICE_CLASS = AdminServiceImpl.class; + // Code added by Jayendra to Authrozie AdminService2Impl Endpoints + private static final Class ADMIN_SERVICE2_CLASS = AdminService2Impl.class; + public static final Metadata.Key ACCESS_TOKEN_METADATA = Metadata.Key.of("Authorization", ASCII_STRING_MARSHALLER); public static final Context.Key ACCESS_TOKEN_CTX = Context.key("accessToken"); @@ -160,6 +164,14 @@ public class PermissionsInterceptor implements ServerInterceptor { // Get the rpc method called Method[] allMethods = SERVICE_CLASS.getDeclaredMethods(); Method[] adminMethods = ADMIN_SERVICE_CLASS.getDeclaredMethods(); + // Added by Jayendra + Method[] admin2Methods = ADMIN_SERVICE2_CLASS.getDeclaredMethods(); + + for (Method method : admin2Methods) { + if (method.getName().equals(rpc)) { + return method; + } + } for (Method method : allMethods) { if (method.getName().equals(rpc)) { diff --git a/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java b/src/main/java/biz/nynja/account/services/AdminService2Impl.java similarity index 97% rename from src/main/java/biz/nynja/account/services/AdminAccountsImpl.java rename to src/main/java/biz/nynja/account/services/AdminService2Impl.java index b9bc663..2033ed1 100644 --- a/src/main/java/biz/nynja/account/services/AdminAccountsImpl.java +++ b/src/main/java/biz/nynja/account/services/AdminService2Impl.java @@ -2,22 +2,28 @@ package biz.nynja.account.services; import biz.nynja.account.models.Account; +import biz.nynja.account.permissions.PerformPermissionCheck; +import biz.nynja.account.permissions.Permitted; +import biz.nynja.account.permissions.RoleConstants; import biz.nynja.account.services.admin.repository.AdminAccountRepository; -import biz.nynja.admin.account.grpc.*; -import biz.nynja.admin.account.grpc.AdminAccountsServiceGrpc.AdminAccountsServiceImplBase; +import biz.nynja.account2.admin.grpc.*; import com.google.protobuf.ProtocolStringList; import io.grpc.stub.StreamObserver; import org.lognet.springboot.grpc.GRpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; + import java.util.List; import java.util.Map; import java.util.UUID; /** - * AdminAccountsImpl contains endpoints for market admin + * AdminService2Impl contains endpoints for market admin * panel to filter accounts while broadcasting message + * This endpoints are permitted to Token with role admin + * + * This service contains endpoints which doesn't exists in AdminService * * @author Jayendra * @since 2019-12-04 @@ -25,14 +31,16 @@ import java.util.UUID; */ @GRpcService -public class AdminAccountsImpl extends AdminAccountsServiceImplBase { +public class AdminService2Impl extends AdminAccountService2Grpc.AdminAccountService2ImplBase { @Autowired private AdminAccountRepository accountService; - private static final Logger logger = LoggerFactory.getLogger(AdminAccountsImpl.class); + private static final Logger logger = LoggerFactory.getLogger(AdminService2Impl.class); @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByAccountId(SearchByAccountIdRequest request, StreamObserver responseObserver) { logger.info("Search Account By Account Id Endpoint."); @@ -106,6 +114,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void getAccountsByCreationTime(GetAccountsByCreationTime request, StreamObserver responseObserver) { @@ -272,6 +282,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void getAccounts(GetAllAccountsRequest request, StreamObserver responseObserver) { @@ -359,6 +371,7 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { logger.info("No accounts found"); logger.info(""); + errorResponse = ErrorResponse.newBuilder().setCause(ErrorResponse.Cause.ACCOUNTS_NOT_FOUND) .setMessage("Accounts are not found").build(); @@ -440,6 +453,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByUsername(SearchByUsernameRequest request, StreamObserver responseObserver) { @@ -515,6 +530,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByFirstname(SearchByFirstNameRequest request, StreamObserver responseObserver) { @@ -587,6 +604,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByLastname(SearchByLastNameRequest request, StreamObserver responseObserver) { @@ -657,6 +676,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByPhoneNumber(SearchByPhoneNumberRequest request, StreamObserver responseObserver) { @@ -726,6 +747,8 @@ public class AdminAccountsImpl extends AdminAccountsServiceImplBase { } @Override + @PerformPermissionCheck + @Permitted(role = RoleConstants.ACCOUNT_ADMIN) public void searchByEmail(SearchByEmailRequest request, StreamObserver responseObserver) { diff --git a/src/main/proto/AdminAccounts.proto b/src/main/proto/admin_account2.proto similarity index 98% rename from src/main/proto/AdminAccounts.proto rename to src/main/proto/admin_account2.proto index 2cf443a..86e3572 100644 --- a/src/main/proto/AdminAccounts.proto +++ b/src/main/proto/admin_account2.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -option java_package = "biz.nynja.admin.account.grpc"; +option java_package = "biz.nynja.account2.admin.grpc"; option java_multiple_files = true; @@ -130,7 +130,7 @@ message GetAccountsByCreationTime { string pageState = 5; // (required only in case of pagination) Defines next page, pageState = 'nil' incase of first page. } -service AdminAccountsService { +service AdminAccountService2 { rpc getAccounts (GetAllAccountsRequest) returns (AccountsResponse); rpc getAccountsByCreationTime (GetAccountsByCreationTime) returns (AccountsResponse); rpc searchByUsername (SearchByUsernameRequest) returns (AccountsResponse); -- GitLab