You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2020/03/13 14:55:39 UTC
[airavata-custos] branch develop updated: Bug fix in profile linker
This is an automated email from the ASF dual-hosted git repository.
isjarana pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-custos.git
The following commit(s) were added to refs/heads/develop by this push:
new 0c1ad46 Bug fix in profile linker
new 8c26709 Merge pull request #25 from isururanawaka/microservices_based_impl
0c1ad46 is described below
commit 0c1ad46acd4280f4d33787588b60778d9a94607d
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Fri Mar 13 10:53:58 2020 -0400
Bug fix in profile linker
---
.../management/interceptors/InputValidator.java | 3 +
.../src/main/resources/user-management-service.pb | Bin 102396 -> 103510 bytes
.../management/interceptors/InputValidator.java | 8 +-
.../management/service/UserManagementService.java | 177 ++++++++++-----------
.../src/main/proto/UserManagementService.proto | 18 +--
5 files changed, 103 insertions(+), 103 deletions(-)
diff --git a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/java/org/apache/custos/tenant/management/interceptors/InputValidator.java b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/java/org/apache/custos/tenant/management/interceptors/InputValidator.java
index f8cf3a8..a50d268 100644
--- a/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/java/org/apache/custos/tenant/management/interceptors/InputValidator.java
+++ b/custos-integration-services/tenant-management-service-parent/tenant-management-service/src/main/java/org/apache/custos/tenant/management/interceptors/InputValidator.java
@@ -69,10 +69,13 @@ public class InputValidator implements IntegrationServiceInterceptor {
break;
case "addTenantRoles":
validateAddRoleToTenant(headers, body, methodName);
+ break;
case "addProtocolMapper":
validateAddProtocolMapper(headers, body, methodName);
+ break;
case "updateTenantStatus":
validateUpdateTenantStatus(headers, body, methodName);
+ break;
default:
}
}
diff --git a/custos-integration-services/user-management-service-parent/user-management-service-sidecar/src/main/resources/user-management-service.pb b/custos-integration-services/user-management-service-parent/user-management-service-sidecar/src/main/resources/user-management-service.pb
index dd877cc..8b350e0 100644
Binary files a/custos-integration-services/user-management-service-parent/user-management-service-sidecar/src/main/resources/user-management-service.pb and b/custos-integration-services/user-management-service-parent/user-management-service-sidecar/src/main/resources/user-management-service.pb differ
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/interceptors/InputValidator.java b/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/interceptors/InputValidator.java
index e1af057..7869e60 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/interceptors/InputValidator.java
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/interceptors/InputValidator.java
@@ -58,11 +58,11 @@ public class InputValidator implements IntegrationServiceInterceptor {
validationAuthorizationHeader(headers);
LinkUserProfileRequest request = ((LinkUserProfileRequest) body);
- if (request.getUsername() == null || request.getUsername().equals("")) {
- throw new MissingParameterException("Username should not be null", null);
+ if (request.getPreviousUsername() == null || request.getPreviousUsername().equals("")) {
+ throw new MissingParameterException("Previous Username should not be null", null);
}
- if (!(request.getSearchByName() || request.getSearchByEmail() || request.getSearchByUsername())) {
- throw new MissingParameterException("At least one search parameter should ne true", null);
+ if (request.getCurrentUsername() == null || request.getCurrentUsername().equals("")) {
+ throw new MissingParameterException("Current username should not be null", null);
}
if (request.getLinkingAttributesList().isEmpty()) {
throw new MissingParameterException("Linking attributes should not be empty", null);
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/service/UserManagementService.java b/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/service/UserManagementService.java
index 358b712..41402f3 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/service/UserManagementService.java
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/java/org/apache/custos/user/management/service/UserManagementService.java
@@ -940,133 +940,132 @@ public class UserManagementService extends UserManagementServiceGrpc.UserManagem
try {
LOGGER.debug("Request received to linkUserProfile at " + request.getTenantId());
- UserSearchMetadata metadata = UserSearchMetadata
- .newBuilder()
- .setUsername(request.getUsername()).build();
-
- UserSearchRequest searchRequest = UserSearchRequest
+ GetUserManagementSATokenRequest userManagementSATokenRequest = GetUserManagementSATokenRequest
.newBuilder()
.setClientId(request.getIamClientId())
+ .setClientSecret(request.getIamClientSecret())
.setTenantId(request.getTenantId())
- .setAccessToken(request.getAccessToken())
- .setUser(metadata)
.build();
+ AuthToken token = identityClient.getUserManagementSATokenRequest(userManagementSATokenRequest);
- UserRepresentation userTobeLinked = iamAdminServiceClient.getUser(searchRequest);
-
-
- if (userTobeLinked != null && !userTobeLinked.getUsername().equals("")) {
-
- UserSearchMetadata.Builder exMetadata = UserSearchMetadata
- .newBuilder();
-
- if (request.getSearchByEmail()) {
- exMetadata.setEmail(userTobeLinked.getEmail());
- }
-
- if (request.getSearchByUsername()) {
- exMetadata.setUsername(userTobeLinked.getUsername());
- }
+ if (token != null && token.getAccessToken() != null) {
- if (request.getSearchByName()) {
- exMetadata.setFirstName(userTobeLinked.getFirstName());
- exMetadata.setLastName(userTobeLinked.getLastName());
- }
+ UserSearchMetadata metadata = UserSearchMetadata
+ .newBuilder()
+ .setUsername(request.getCurrentUsername()).build();
- UserSearchRequest exSearchRequest = UserSearchRequest
+ UserSearchRequest searchRequest = UserSearchRequest
.newBuilder()
.setClientId(request.getIamClientId())
.setTenantId(request.getTenantId())
- .setAccessToken(request.getAccessToken())
+ .setAccessToken(token.getAccessToken())
.setUser(metadata)
.build();
- UserRepresentation exRep = iamAdminServiceClient.getUser(exSearchRequest);
- if (exRep != null && !exRep.getUsername().equals("")) {
+ UserRepresentation userTobeLinked = iamAdminServiceClient.getUser(searchRequest);
- boolean profileUpdate = false;
- List<UserAttribute> userAttributeList = new ArrayList<>();
+ if (userTobeLinked != null && !userTobeLinked.getUsername().equals("")) {
- for (String attribute : request.getLinkingAttributesList()) {
+ UserSearchMetadata exMetadata = UserSearchMetadata
+ .newBuilder().setUsername(request.getPreviousUsername()).build();
- if ("name".equals(attribute)) {
- profileUpdate = true;
- userTobeLinked = userTobeLinked.toBuilder()
- .setFirstName(exRep.getFirstName())
- .setLastName(exRep.getLastName())
- .build();
+ UserSearchRequest exSearchRequest = UserSearchRequest
+ .newBuilder()
+ .setClientId(request.getIamClientId())
+ .setTenantId(request.getTenantId())
+ .setAccessToken(token.getAccessToken())
+ .setUser(exMetadata)
+ .build();
+
+ UserRepresentation exRep = iamAdminServiceClient.getUser(exSearchRequest);
+
+ if (exRep != null && !exRep.getUsername().equals("")) {
+
+ boolean profileUpdate = false;
+
+ List<UserAttribute> userAttributeList = new ArrayList<>();
+
+ for (String attribute : request.getLinkingAttributesList()) {
+
+ if ("name".equals(attribute)) {
+ profileUpdate = true;
+ userTobeLinked = userTobeLinked.toBuilder()
+ .setFirstName(exRep.getFirstName())
+ .setLastName(exRep.getLastName())
+ .build();
- } else if (("email").equals(attribute)) {
- profileUpdate = true;
- userTobeLinked = userTobeLinked.toBuilder().setEmail(exRep.getEmail()).build();
+ } else if (("email").equals(attribute)) {
+ profileUpdate = true;
+ userTobeLinked = userTobeLinked.toBuilder().setEmail(exRep.getEmail()).build();
- } else {
- List<UserAttribute> userAttributes = exRep.getAttributesList().stream().
- filter(atr -> atr.getKey().equals(attribute)).collect(Collectors.toList());
+ } else {
+ List<UserAttribute> userAttributes = exRep.getAttributesList().stream().
+ filter(atr -> atr.getKey().equals(attribute)).collect(Collectors.toList());
- if (!userAttributes.isEmpty()) {
- UserAttribute userAttribute = userAttributes.get(0);
- userAttributeList.add(userAttribute);
+ if (!userAttributes.isEmpty()) {
+ UserAttribute userAttribute = userAttributes.get(0);
+ userAttributeList.add(userAttribute);
+ }
}
}
- }
- if (profileUpdate) {
- UpdateUserProfileRequest updateUserProfileRequest = UpdateUserProfileRequest
- .newBuilder()
- .setUser(userTobeLinked)
- .setAccessToken(request.getAccessToken())
- .setTenantId(request.getTenantId())
- .build();
- iamAdminServiceClient.updateUserProfile(updateUserProfileRequest);
- }
+ if (profileUpdate) {
+ UpdateUserProfileRequest updateUserProfileRequest = UpdateUserProfileRequest
+ .newBuilder()
+ .setUser(userTobeLinked)
+ .setAccessToken(token.getAccessToken())
+ .setTenantId(request.getTenantId())
+ .build();
+ iamAdminServiceClient.updateUserProfile(updateUserProfileRequest);
+ }
- if (!userAttributeList.isEmpty()) {
+ if (!userAttributeList.isEmpty()) {
- AddUserAttributesRequest addUserAttributesRequest = AddUserAttributesRequest
- .newBuilder()
- .addUsers(request.getUsername())
- .addAllAttributes(userAttributeList)
- .setTenantId(request.getTenantId())
- .setAccessToken(request.getAccessToken())
- .setClientId(request.getIamClientId())
- .setPerformedBy(request.getPerformedBy())
- .build();
- iamAdminServiceClient.addUserAttributes(addUserAttributesRequest);
+ AddUserAttributesRequest addUserAttributesRequest = AddUserAttributesRequest
+ .newBuilder()
+ .addUsers(request.getCurrentUsername())
+ .addAllAttributes(userAttributeList)
+ .setTenantId(request.getTenantId())
+ .setAccessToken(token.getAccessToken())
+ .setClientId(request.getIamClientId())
+ .setPerformedBy(request.getPerformedBy())
+ .build();
+ iamAdminServiceClient.addUserAttributes(addUserAttributesRequest);
- }
+ }
- UserRepresentation updatedUser = iamAdminServiceClient.getUser(searchRequest);
+ UserRepresentation updatedUser = iamAdminServiceClient.getUser(searchRequest);
- if (updatedUser != null) {
+ if (updatedUser != null) {
- UserProfile profile = this.convertToProfile(updatedUser);
+ UserProfile profile = this.convertToProfile(updatedUser);
- org.apache.custos.user.profile.service.UserProfileRequest req =
- org.apache.custos.user.profile.service.UserProfileRequest
- .newBuilder()
- .setTenantId(request.getTenantId())
- .setProfile(profile)
- .build();
+ org.apache.custos.user.profile.service.UserProfileRequest req =
+ org.apache.custos.user.profile.service.UserProfileRequest
+ .newBuilder()
+ .setTenantId(request.getTenantId())
+ .setProfile(profile)
+ .build();
- userProfileClient.updateUserProfile(req);
+ userProfileClient.updateUserProfile(req);
- }
+ }
- CheckingResponse response = CheckingResponse.newBuilder().setIsExist(true).build();
- responseObserver.onNext(response);
- responseObserver.onCompleted();
+ CheckingResponse response = CheckingResponse.newBuilder().setIsExist(true).build();
+ responseObserver.onNext(response);
+ responseObserver.onCompleted();
- } else {
- String msg = "Cannot found existing user ";
- LOGGER.error(msg);
- responseObserver.onError(Status.NOT_FOUND.withDescription(msg).asRuntimeException());
- }
+ } else {
+ String msg = "Cannot found existing user ";
+ LOGGER.error(msg);
+ responseObserver.onError(Status.NOT_FOUND.withDescription(msg).asRuntimeException());
+ }
+ }
}
} catch (Exception ex) {
diff --git a/custos-integration-services/user-management-service-parent/user-management-service/src/main/proto/UserManagementService.proto b/custos-integration-services/user-management-service-parent/user-management-service/src/main/proto/UserManagementService.proto
index 04da5d0..66cd9bd 100644
--- a/custos-integration-services/user-management-service-parent/user-management-service/src/main/proto/UserManagementService.proto
+++ b/custos-integration-services/user-management-service-parent/user-management-service/src/main/proto/UserManagementService.proto
@@ -67,16 +67,14 @@ message ResetPasswordRequest {
}
message LinkUserProfileRequest {
- string username = 1;
- int64 tenantId = 2;
- bool search_by_email = 3;
- bool search_by_name = 4;
- bool search_by_username = 6;
- repeated string linking_attributes = 7;
- string iamClientId = 8;
- string iamClientSecret = 9;
- string accessToken = 10;
- string performedBy = 11;
+ string current_username = 1;
+ string previous_username = 2;
+ repeated string linking_attributes = 3;
+ int64 tenantId = 4;
+ string iamClientId = 5;
+ string iamClientSecret = 6;
+ string accessToken = 7;
+ string performedBy = 8;
}