From 97fd90473c3efa0b45366cff51fbb92f152164b8 Mon Sep 17 00:00:00 2001 From: Gianluca d'Agosta Date: Mon, 27 Jun 2022 12:07:44 +0200 Subject: [PATCH] Updates on user management using UUID from IDP --- .../controller/UserController.java | 52 ++++++++++--------- .../identityManager/IdpClientManager.java | 11 ++++ 2 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/main/java/it/enea/xlab/GECORegistration/controller/UserController.java b/src/main/java/it/enea/xlab/GECORegistration/controller/UserController.java index 55d3777..758e0e7 100644 --- a/src/main/java/it/enea/xlab/GECORegistration/controller/UserController.java +++ b/src/main/java/it/enea/xlab/GECORegistration/controller/UserController.java @@ -107,8 +107,8 @@ public class UserController { @Autowired IdpClientManager idpClientManager; - @Autowired - IEncryptionManager encryptionManager; + //@Autowired + //IEncryptionManager encryptionManager; @Autowired DTOManager dTOManager; @@ -319,8 +319,8 @@ public class UserController { LocalUserDTO lUserDTO = new LocalUserDTO(); try { user = userInterface.findBySubject(subject); - String email = encryptionManager.decrypt(user.getSubject()); - UserDto userDto = idpClientManager.getUser(email); + //String email = encryptionManager.decrypt(user.getSubject()); + UserDto userDto = idpClientManager.getUser(user.getSubject()); user.mergeWithDto(userDto); lUserDTO = dTOManager.userDTO(user); @@ -557,8 +557,7 @@ public class UserController { if (isValid) { UserDto userdto = idpClientManager.getUserFromToken(token); - String subject = encryptionManager.encrypt(userdto.getEmail()); - + u = userInterface.findBySubject(userdto.getUuid()); if (u.hasRole(communityRoleAdmin) || u.hasRole(oracleRoleAdmin) || u.hasRole(platformRoleAdmin)) { for (UserCommunity c : u.getUsercommunities()) { @@ -567,14 +566,14 @@ public class UserController { for (User uTmp : usersInCommunity) { - String email = encryptionManager.decrypt(uTmp.getSubject()); - log.info("email: " + email); - if(email != null && !email.isEmpty()) { - UserDto tmpUserDto = idpClientManager.getUser(email); + String subejct = uTmp.getSubject(); + log.info("email: " + subejct); + if(subejct != null && !subejct.isEmpty()) { + UserDto tmpUserDto = idpClientManager.getUser(subejct); if (tmpUserDto != null ) { uTmp.mergeWithDto(tmpUserDto); LocalUserDTO lUserDTO = dTOManager.userDTO(uTmp); - lUserDTO.setEmail(email); + lUserDTO.setEmail(tmpUserDto.getEmail()); listOfUsers.add(lUserDTO); } } @@ -599,23 +598,25 @@ public class UserController { @ApiOperation(value = "Generate subject", response = String.class, tags = "") @PostMapping("/generateSubject") + @Deprecated ResponseEntity generateSubject( @ApiParam(name = "mail", type = "String", value = "The user's email", example = "", required = false) @RequestBody String email){ - String subject = encryptionManager.encrypt(email); + //String subject = encryptionManager.encrypt(email); - return new ResponseEntity (subject, HttpStatus.OK); + return new ResponseEntity ("", HttpStatus.OK); } @ApiOperation(value = "Generate email", response = String.class, tags = "") @PostMapping("/returnEmail") + @Deprecated ResponseEntity generateEmail( @ApiParam(name = "Subject", type = "String", value = "The user's subject", example = "", required = false) @RequestBody String subject){ - String email = encryptionManager.decrypt(subject); + //String email = encryptionManager.decrypt(subject); - return new ResponseEntity (email, HttpStatus.OK); + return new ResponseEntity ("", HttpStatus.OK); } @@ -656,7 +657,7 @@ public class UserController { isValid = idpClientManager.isValid(tokenAuth); if (isValid) { userdto = idpClientManager.getUserFromToken(tokenAuth); - subject = encryptionManager.encrypt(userdto.getEmail()); + subject = userdto.getUuid(); } else { return new ResponseEntity("Provided token is not valid ", // headers, HttpStatus.FORBIDDEN); @@ -668,13 +669,13 @@ public class UserController { for (User uTmp : users) { - String email = encryptionManager.decrypt(uTmp.getSubject()); - if(email != null && !email.isEmpty()) { - UserDto tmpUserDto = idpClientManager.getUser(email); + String subjectLocal = uTmp.getSubject(); + if(subjectLocal != null && !subjectLocal.isEmpty()) { + UserDto tmpUserDto = idpClientManager.getUser(subjectLocal); if (tmpUserDto != null ) { uTmp.mergeWithDto(tmpUserDto); LocalUserDTO lUserDTO = dTOManager.userDTO(uTmp); - lUserDTO.setEmail(email); + lUserDTO.setEmail(tmpUserDto.getEmail()); resultList.add(lUserDTO); } } @@ -808,9 +809,10 @@ public class UserController { log.info("Wrong username or password"); return new ResponseEntity(new LocalUserDTO(), HttpStatus.FORBIDDEN); } - String subject = encryptionManager.encrypt(userdto.getEmail()); + //String subject = encryptionManager.encrypt(userdto.getEmail()); + log.info("UUID: " + userdto.getSubject()); - log.info("SUBJECT: " + subject); + //log.info("SUBJECT: " + userdto.getSubject()); User user = userInterface.findBySubject(userdto.getSubject()); if (user == null) { /* @@ -986,7 +988,7 @@ public class UserController { return new ResponseEntity(0, HttpStatus.FORBIDDEN); } - String subject = encryptionManager.encrypt(userdto.getEmail()); + //String subject = encryptionManager.encrypt(userdto.getEmail()); User user = getUserFromSubject(userdto.getUuid()); if (user == null) { log.info("User not found on local DB"); @@ -1073,7 +1075,7 @@ public class UserController { return new ResponseEntity>(result, HttpStatus.FORBIDDEN); } - String subject = encryptionManager.encrypt(userdto.getEmail()); + //String subject = encryptionManager.encrypt(userdto.getEmail()); User user = getUserFromSubject(userdto.getUuid()); if (user == null) { log.info("User not found on local DB"); @@ -1206,7 +1208,7 @@ public class UserController { if (isValid) { UserDto userdto = idpClientManager.getUserFromToken(token); - String subject = encryptionManager.encrypt(userdto.getEmail()); + //String subject = encryptionManager.encrypt(userdto.getEmail()); user = userInterface.findBySubject(userdto.getUuid()); } diff --git a/src/main/java/it/enea/xlab/GECORegistration/service/identityManager/IdpClientManager.java b/src/main/java/it/enea/xlab/GECORegistration/service/identityManager/IdpClientManager.java index ee698c3..17e079c 100644 --- a/src/main/java/it/enea/xlab/GECORegistration/service/identityManager/IdpClientManager.java +++ b/src/main/java/it/enea/xlab/GECORegistration/service/identityManager/IdpClientManager.java @@ -221,5 +221,16 @@ public class IdpClientManager implements IIdpClientManager{ return lResponse.getPayload(); } + + public UserDto getUserFromUUID(String uuid) { + + IdpManager idpm = ic.getIdpManagerLocal(); + + IdpResponse lResponse = idpm.getUser(uuid); + if(!lResponse.getCode().equals("00")) { + log.info("Error on getting the user: " + lResponse.getMessage()); + } + return lResponse.getPayload(); + } } -- GitLab