diff --git a/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java b/src/main/java/biz/nynja/account/permissions/PermissionsInterceptor.java index c5144b4f97cd00cad58588ffc5da8174a9e5cf9c..f11e3837e5baea59c1fd3f4db024af75db915b29 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 b9bc663a64ca88d74aab9c7b9a6694e14c94a3f0..2033ed1ca0c82843c29e622dbca86c4e4605a38c 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 2cf443acc2a38899deb1bed18302681548d8a706..86e35723565b2dc2db8ebaee91dcac0d0bfbcd45 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);