diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 8dc5db98aa2a339c6e04ee4bac1c0c0444b96cea..27d53063c3911c71379833810e0ecf905a38285a 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -428,7 +428,7 @@ services: BROKER_EXCHANGE_NAME: ${BROKER_EXCHANGE_NAME:-dbrepo} BROKER_QUEUE_NAME: ${BROKER_QUEUE_NAME:-dbrepo} BROKER_HOST: "${BROKER_ENDPOINT:-broker-service}" - BROKER_PASSWORD: ${SYSTEM_USERNAME:-admin} + BROKER_PASSWORD: ${SYSTEM_PASSWORD:-admin} BROKER_PORT: ${BROKER_PORT:-5672} BROKER_SERVICE_ENDPOINT: ${BROKER_SERVICE_ENDPOINT:-http://gateway-service/admin/broker} BROKER_USERNAME: ${SYSTEM_USERNAME:-admin} diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java index 19e3a1df06cc7e67dae6cd6fdcadd3664abb9ee9..173b3ef95df3f8c233cbc629f9769c0a694aebe9 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java @@ -326,7 +326,7 @@ public class UserEndpoint { } @PutMapping("/{userId}/password") - @Transactional + @Transactional(rollbackFor = {Exception.class}) @PreAuthorize("isAuthenticated()") @Observed(name = "dbrepo_user_password_modify") @Operation(summary = "Update user password", @@ -367,12 +367,11 @@ public class UserEndpoint { AuthServiceConnectionException, UserNotFoundException, DatabaseNotFoundException, DataServiceException, DataServiceConnectionException, CredentialsInvalidException { log.debug("endpoint modify a user password, userId={}, data.password=(hidden)", userId); - User user = userService.findById(userId); + final User user = userService.findById(userId); if (!user.equals(principal)) { log.error("Failed to modify user password: not current user"); throw new NotAllowedException("Failed to modify user password: not current user"); } - user = userService.findByUsername(principal.getName()); userService.updatePassword(user, data); authenticationService.updatePassword(user, data); for (Database database : databaseService.findAllAccess(userId)) { diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java index 7127138fab2a98a3bb769ae2e5720f5b7886371a..eb378290aaf0cec147292a4528efae7e3928811b 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/AuthenticationService.java @@ -60,5 +60,6 @@ public interface AuthenticationService { * @throws AuthServiceException The auth service responded with unexpected behavior. * @throws AuthServiceConnectionException The connection with the auth service could not be established. */ - void updatePassword(User user, UserPasswordDto data) throws AuthServiceException, AuthServiceConnectionException, CredentialsInvalidException; + void updatePassword(User user, UserPasswordDto data) throws AuthServiceException, AuthServiceConnectionException, + CredentialsInvalidException, UserNotFoundException; } diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java index 460845e897c5f1c3c20e235c35d21535b539939d..52aa5048891102ae10494790992076f9375388f5 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/AuthenticationServiceImpl.java @@ -43,7 +43,8 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Override public void delete(User user) throws AuthServiceException, AuthServiceConnectionException, UserNotFoundException, CredentialsInvalidException { - keycloakGateway.deleteUser(user.getId()); + final UserDto keycloakUser = findByUsername(user.getUsername()); + keycloakGateway.deleteUser(keycloakUser.getId()); } @Override @@ -72,8 +73,9 @@ public class AuthenticationServiceImpl implements AuthenticationService { @Override public void updatePassword(User user, UserPasswordDto data) throws AuthServiceException, - AuthServiceConnectionException, CredentialsInvalidException { - keycloakGateway.updateUserCredentials(user.getId(), data); + AuthServiceConnectionException, CredentialsInvalidException, UserNotFoundException { + final UserDto keycloakUser = findByUsername(user.getUsername()); + keycloakGateway.updateUserCredentials(keycloakUser.getId(), data); } } diff --git a/docker-compose.yml b/docker-compose.yml index c2b70d33355d34c53af25ef10b47abab5300c56c..c2927c1c651ad8244426595f074a4813884b3cc1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -493,7 +493,7 @@ services: BROKER_EXCHANGE_NAME: ${BROKER_EXCHANGE_NAME:-dbrepo} BROKER_QUEUE_NAME: ${BROKER_QUEUE_NAME:-dbrepo} BROKER_HOST: "${BROKER_ENDPOINT:-broker-service}" - BROKER_PASSWORD: ${SYSTEM_USERNAME:-admin} + BROKER_PASSWORD: ${SYSTEM_PASSWORD:-admin} BROKER_PORT: ${BROKER_PORT:-5672} BROKER_SERVICE_ENDPOINT: ${BROKER_SERVICE_ENDPOINT:-http://gateway-service/admin/broker} BROKER_USERNAME: ${SYSTEM_USERNAME:-admin}