From 79a199205aa7626197cfbc4bd368671fab87d674 Mon Sep 17 00:00:00 2001 From: Richard Millet Date: Wed, 7 Mar 2018 20:21:17 -0800 Subject: [PATCH] DRYD-334: Added containing elemement to Accounts resources payloads that include optional list of roles. --- .../xmlreplay/security/6-account-elmo.xml | 8 +- .../BasicRoles/createSimpleAccount-2.xml | 16 +-- .../security/BasicRoles/removeRoles.xml | 15 +++ .../SimpleRoles/createSimpleAccount-1.xml | 13 ++ .../SimpleRoles/createSimpleAccount-2.xml | 22 ++++ .../SimpleRoles/createSimpleRole-1.xml | 5 + .../SimpleRoles/createSimpleRole-2.xml | 11 ++ .../security/SimpleRoles/removeRoles.xml | 15 +++ .../SimpleRoles/responses/no-roles.res.xml | 9 ++ .../SimpleRoles/responses/show-roles.res.xml | 18 +++ .../security/SlipOut/slipOutAccount-1.xml | 8 +- .../test-data/xmlreplay/security/security.xml | 35 ++++-- .../services/client/AccountRoleFactory.java | 65 +++++----- .../src/main/resources/accounts_common.xsd | 18 ++- .../jaxb/src/main/resources/instance1.xml | 43 +++++++ .../storage/AccountDocumentHandler.java | 117 +++++++++--------- 16 files changed, 308 insertions(+), 110 deletions(-) create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/removeRoles.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-1.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-2.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-1.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-2.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/removeRoles.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/no-roles.res.xml create mode 100644 services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/show-roles.res.xml create mode 100644 services/account/jaxb/src/main/resources/instance1.xml diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/6-account-elmo.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/6-account-elmo.xml index 57a380645..752c90733 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/6-account-elmo.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/6-account-elmo.xml @@ -10,7 +10,9 @@ 1 - - ${simpleRoleId} - + + + ${simpleRoleId} + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/createSimpleAccount-2.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/createSimpleAccount-2.xml index 657682ef9..844a139bd 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/createSimpleAccount-2.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/createSimpleAccount-2.xml @@ -10,11 +10,13 @@ 1 - - 9a1fed44-25b0-48f9-8356-d16ac7555cae - ROLE_1_TENANT_ADMINISTRATOR - - - ${simpleRole_2.CSID} - + + + 9a1fed44-25b0-48f9-8356-d16ac7555cae + ROLE_1_TENANT_ADMINISTRATOR + + + ${simpleRole_2.CSID} + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/removeRoles.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/removeRoles.xml new file mode 100644 index 000000000..0d84215db --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/BasicRoles/removeRoles.xml @@ -0,0 +1,15 @@ + + + simpleAccount-2 + simpleAccount-2 + simpleAccount-2@security.simpleroles.org + 1234567890 + simpleAccount-2 + + ZWxtbzIwMTA= + + 1 + + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-1.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-1.xml new file mode 100644 index 000000000..3612f7c5b --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-1.xml @@ -0,0 +1,13 @@ + + + simpleAccount-1 + simpleAccount-1 + simpleAccount-1@security.simpleroles.org + 1234567890 + simpleAccount-1 + + ZWxtbzIwMTA= + + 1 + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-2.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-2.xml new file mode 100644 index 000000000..844a139bd --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleAccount-2.xml @@ -0,0 +1,22 @@ + + + simpleAccount-2 + simpleAccount-2 + simpleAccount-2@security.simpleroles.org + 1234567890 + simpleAccount-2 + + ZWxtbzIwMTA= + + 1 + + + + 9a1fed44-25b0-48f9-8356-d16ac7555cae + ROLE_1_TENANT_ADMINISTRATOR + + + ${simpleRole_2.CSID} + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-1.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-1.xml new file mode 100644 index 000000000..3bf4d1861 --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-1.xml @@ -0,0 +1,5 @@ + + + BasicRoles-SimpleRole-1 + Role for BasicRoles-simpleRole-1 create test. + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-2.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-2.xml new file mode 100644 index 000000000..41640460c --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/createSimpleRole-2.xml @@ -0,0 +1,11 @@ + + + BasicRoles-SimpleRole-2 + Role for BasicRoles-simpleRole-2 create test. + + 1-vocabularies-RL + + + 1-groups-RL + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/removeRoles.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/removeRoles.xml new file mode 100644 index 000000000..0d84215db --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/removeRoles.xml @@ -0,0 +1,15 @@ + + + simpleAccount-2 + simpleAccount-2 + simpleAccount-2@security.simpleroles.org + 1234567890 + simpleAccount-2 + + ZWxtbzIwMTA= + + 1 + + + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/no-roles.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/no-roles.res.xml new file mode 100644 index 000000000..6509f0f42 --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/no-roles.res.xml @@ -0,0 +1,9 @@ + + simpleAccount-2 + simpleAccount-2 + simpleAccount-2@security.simpleroles.org + 1234567890 + simpleAccount-2 + active + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/show-roles.res.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/show-roles.res.xml new file mode 100644 index 000000000..39426f2b3 --- /dev/null +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SimpleRoles/responses/show-roles.res.xml @@ -0,0 +1,18 @@ + + simpleAccount-2 + simpleAccount-2 + simpleAccount-2@security.simpleroles.org + 1234567890 + simpleAccount-2 + active + + + 9a1fed44-25b0-48f9-8356-d16ac7555cae + ROLE_1_TENANT_ADMINISTRATOR + + + ${simpleRole_2.CSID} + ROLE_1_BASICROLES-SIMPLEROLE-2 + + + \ No newline at end of file diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SlipOut/slipOutAccount-1.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SlipOut/slipOutAccount-1.xml index 6eac120fa..8a778e796 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SlipOut/slipOutAccount-1.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/SlipOut/slipOutAccount-1.xml @@ -10,7 +10,9 @@ 1 - - ${slipOutRole.CSID} - + + + ${slipOutRole.CSID} + + diff --git a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/security.xml b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/security.xml index 3a7811cfe..f96b22eaf 100644 --- a/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/security.xml +++ b/services/IntegrationTests/src/test/resources/test-data/xmlreplay/security/security.xml @@ -46,25 +46,44 @@ POST /cspace-services/accounts - security/BasicRoles/createSimpleAccount-1.xml + security/SimpleRoles/createSimpleAccount-1.xml POST /cspace-services/authorization/roles - security/BasicRoles/createSimpleRole-1.xml + security/SimpleRoles/createSimpleRole-1.xml - POST /cspace-services/authorization/roles - security/BasicRoles/createSimpleRole-2.xml + security/SimpleRoles/createSimpleRole-2.xml - + POST /cspace-services/accounts - security/BasicRoles/createSimpleAccount-2.xml + security/SimpleRoles/createSimpleAccount-2.xml + + + GET + /cspace-services/accounts/${simpleAccount_2.CSID}?showRoles=true + + + ${simpleRole_2.CSID} + + security/SimpleRoles/responses/show-roles.res.xml + + + + PUT + /cspace-services/accounts/${simpleAccount_2.CSID} + security/SimpleRoles/removeRoles.xml + + + GET + /cspace-services/accounts/${simpleAccount_2.CSID}?showRoles=true + + security/SimpleRoles/responses/no-roles.res.xml + diff --git a/services/account/client/src/main/java/org/collectionspace/services/client/AccountRoleFactory.java b/services/account/client/src/main/java/org/collectionspace/services/client/AccountRoleFactory.java index e8b207d2b..32dc67edc 100644 --- a/services/account/client/src/main/java/org/collectionspace/services/client/AccountRoleFactory.java +++ b/services/account/client/src/main/java/org/collectionspace/services/client/AccountRoleFactory.java @@ -29,6 +29,7 @@ import java.util.Collection; import java.util.List; import org.collectionspace.services.account.AccountsCommon; +import org.collectionspace.services.account.RoleList; import org.collectionspace.services.authorization.AccountRole; import org.collectionspace.services.authorization.AccountValue; import org.collectionspace.services.authorization.SubjectType; @@ -87,21 +88,21 @@ public class AccountRoleFactory { Collection roleValueList, boolean useAccountId, boolean useRoleId) { - - Collection authzRoleValueList = new ArrayList(); - if (roleValueList != null && roleValueList.size() > 0) { - for (org.collectionspace.services.account.RoleValue rv : roleValueList) { - RoleValue authzRoleValue = new RoleValue(); - authzRoleValue.setDisplayName(rv.getDisplayName()); - authzRoleValue.setRoleId(rv.getRoleId()); - authzRoleValue.setRoleName(rv.getRoleName()); - authzRoleValue.setRoleRelationshipId(rv.getRoleRelationshipId()); - authzRoleValue.setTenantId(rv.getTenantId()); - authzRoleValueList.add(authzRoleValue); - } - } - - AccountValue accountValue = AccountFactory.createAccountValue(accountsCommon); + + Collection authzRoleValueList = new ArrayList(); + if (roleValueList != null && roleValueList.size() > 0) { + for (org.collectionspace.services.account.RoleValue rv : roleValueList) { + RoleValue authzRoleValue = new RoleValue(); + authzRoleValue.setDisplayName(rv.getDisplayName()); + authzRoleValue.setRoleId(rv.getRoleId()); + authzRoleValue.setRoleName(rv.getRoleName()); + authzRoleValue.setRoleRelationshipId(rv.getRoleRelationshipId()); + authzRoleValue.setTenantId(rv.getTenantId()); + authzRoleValueList.add(authzRoleValue); + } + } + + AccountValue accountValue = AccountFactory.createAccountValue(accountsCommon); return AccountRoleFactory.createAccountRoleInstance(accountValue, authzRoleValueList, useAccountId, useRoleId); } @@ -110,21 +111,23 @@ public class AccountRoleFactory { * @param roleValueList * @return */ - static public List convert(List roleValueList) { - List result = new ArrayList(); - - if (roleValueList != null && roleValueList.size() > 0) { - for (RoleValue rv : roleValueList) { - org.collectionspace.services.account.RoleValue accountRoleValue = new org.collectionspace.services.account.RoleValue(); - accountRoleValue.setDisplayName(rv.getDisplayName()); - accountRoleValue.setRoleId(rv.getRoleId()); - accountRoleValue.setRoleName(rv.getRoleName()); - accountRoleValue.setRoleRelationshipId(rv.getRoleRelationshipId()); - accountRoleValue.setTenantId(rv.getTenantId()); - result.add(accountRoleValue); - } - } - - return result; + static public RoleList convert(List roleValueList) { + RoleList result = new RoleList(); + List listOfRoleValues = new ArrayList(); + + if (roleValueList != null && roleValueList.size() > 0) { + for (RoleValue rv : roleValueList) { + org.collectionspace.services.account.RoleValue accountRoleValue = new org.collectionspace.services.account.RoleValue(); + accountRoleValue.setDisplayName(rv.getDisplayName()); + accountRoleValue.setRoleId(rv.getRoleId()); + accountRoleValue.setRoleName(rv.getRoleName()); + accountRoleValue.setRoleRelationshipId(rv.getRoleRelationshipId()); + accountRoleValue.setTenantId(rv.getTenantId()); + listOfRoleValues.add(accountRoleValue); + } + } + + result.setRole(listOfRoleValues); + return result; } } diff --git a/services/account/jaxb/src/main/resources/accounts_common.xsd b/services/account/jaxb/src/main/resources/accounts_common.xsd index 194ffacdf..adf195228 100644 --- a/services/account/jaxb/src/main/resources/accounts_common.xsd +++ b/services/account/jaxb/src/main/resources/accounts_common.xsd @@ -175,7 +175,7 @@ - + @@ -188,11 +188,25 @@ + + + + + RoleList is used relationships + + + + + + + + + - RoleValue is used relationships + RoleValue is used in relationships diff --git a/services/account/jaxb/src/main/resources/instance1.xml b/services/account/jaxb/src/main/resources/instance1.xml new file mode 100644 index 000000000..90c47c8eb --- /dev/null +++ b/services/account/jaxb/src/main/resources/instance1.xml @@ -0,0 +1,43 @@ + + + screenName0 + personRefName0 + email0 + phone0 + mobile0 + userId0 + ZGVmYXVsdA== + + tenant_id0 + + + tenant_id1 + + active + metadataProtection0 + rolesProtection0 + 2006-05-04T18:13:51.0 + 2006-05-04T18:13:51.0 + + + roleRelationshipId0 + roleId0 + roleName0 + displayName0 + tenantId0 + + + roleRelationshipId1 + roleId1 + roleName1 + displayName1 + tenantId1 + + + diff --git a/services/account/service/src/main/java/org/collectionspace/services/account/storage/AccountDocumentHandler.java b/services/account/service/src/main/java/org/collectionspace/services/account/storage/AccountDocumentHandler.java index 5049b6503..9d1f870b8 100644 --- a/services/account/service/src/main/java/org/collectionspace/services/account/storage/AccountDocumentHandler.java +++ b/services/account/service/src/main/java/org/collectionspace/services/account/storage/AccountDocumentHandler.java @@ -83,30 +83,35 @@ public class AccountDocumentHandler AccountsCommon accountReceived = getCommonPart(); // If marked as metadata immutable, do not do update if (!AccountClient.IMMUTABLE.equals(accountFound.getMetadataProtection())) { - merge(accountReceived, accountFound); + merge(accountReceived, accountFound); } // // Update the accountroles if supplied // - List roleValueList = accountReceived.getRole(); - if (roleValueList != null && roleValueList.size() > 0) { - AccountRoleSubResource subResource = - new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); - // - // First, delete the exist accountroles - // - subResource.deleteAccountRole(getServiceContext(), accountFound.getCsid(), SubjectType.ROLE); - // - // Next, create the new accountroles - // - AccountRole accountRole = AccountRoleFactory.createAccountRoleInstance(accountFound, - roleValueList, true, true); - String accountRoleCsid = subResource.createAccountRole(getServiceContext(), accountRole, SubjectType.ROLE); - // - // Finally, set the updated role list in the result - // - AccountRole newAccountRole = subResource.getAccountRole(getServiceContext(), accountFound.getCsid(), SubjectType.ROLE); - accountFound.setRole(AccountRoleFactory.convert(newAccountRole.getRole())); + if (accountReceived.getRoleList() != null) { // if null, no element was supplied so we don't do anything to the account-role relationships + // + // First, delete the existing accountroles + // + AccountRoleSubResource subResource = + new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); + subResource.deleteAccountRole(getServiceContext(), accountFound.getCsid(), SubjectType.ROLE); + // + // Check to see if the payload has new roles to relate to the account + // + List roleValueList = accountReceived.getRoleList().getRole(); + if (roleValueList != null && roleValueList.size() > 0) { + // + // Next, create the new accountroles + // + AccountRole accountRole = AccountRoleFactory.createAccountRoleInstance(accountFound, + roleValueList, true, true); + String accountRoleCsid = subResource.createAccountRole(getServiceContext(), accountRole, SubjectType.ROLE); + // + // Finally, set the updated role list in the result + // + AccountRole newAccountRole = subResource.getAccountRole(getServiceContext(), accountFound.getCsid(), SubjectType.ROLE); + accountFound.setRoleList(AccountRoleFactory.convert(newAccountRole.getRole())); + } } } @@ -153,20 +158,20 @@ public class AccountDocumentHandler * If the create payload included a list of role, relate them to the account. */ public void completeCreate(DocumentWrapper wrapDoc) throws Exception { - AccountsCommon accountsCommon = wrapDoc.getWrappedObject(); - List roleValueList = account.getRole(); - if (roleValueList != null && roleValueList.size() > 0) { - // - // To prevent new Accounts being created (especially low-level Spring Security accounts/SIDs), we'll first flush the current - // JPA context to ensure our Account can be successfully persisted. - // - TransactionContext jpaTransactionContext = this.getServiceContext().getCurrentTransactionContext(); - jpaTransactionContext.flush(); - - AccountRoleSubResource subResource = new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); - AccountRole accountRole = AccountRoleFactory.createAccountRoleInstance(accountsCommon, roleValueList, true, true); - subResource.createAccountRole(this.getServiceContext(), accountRole, SubjectType.ROLE); - } + AccountsCommon accountsCommon = wrapDoc.getWrappedObject(); + List roleValueList = account.getRoleList() != null ? account.getRoleList().getRole() : null; + if (roleValueList != null && roleValueList.size() > 0) { + // + // To prevent new Accounts being created (especially low-level Spring Security accounts/SIDs), we'll first flush the current + // JPA context to ensure our Account can be successfully persisted. + // + TransactionContext jpaTransactionContext = this.getServiceContext().getCurrentTransactionContext(); + jpaTransactionContext.flush(); + + AccountRoleSubResource subResource = new AccountRoleSubResource(AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); + AccountRole accountRole = AccountRoleFactory.createAccountRoleInstance(accountsCommon, roleValueList, true, true); + subResource.createAccountRole(this.getServiceContext(), accountRole, SubjectType.ROLE); + } } @Override @@ -189,23 +194,23 @@ public class AccountDocumentHandler getServiceContext().setOutput(getCommonPartList()); } - @SuppressWarnings("unchecked") - @Override - public AccountsCommon extractCommonPart(DocumentWrapper wrapDoc) throws Exception { - AccountsCommon account = wrapDoc.getWrappedObject(); - - String includeRolesQueryParamValue = (String) getServiceContext().getQueryParams().getFirst(AccountClient.INCLUDE_ROLES_QP); - boolean includeRoles = Tools.isTrue(includeRolesQueryParamValue); - if (includeRoles) { - AccountRoleSubResource accountRoleResource = new AccountRoleSubResource( - AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); - AccountRole accountRole = accountRoleResource.getAccountRole(getServiceContext(), account.getCsid(), - SubjectType.ROLE); - account.setRole(AccountRoleFactory.convert(accountRole.getRole())); - } - - return wrapDoc.getWrappedObject(); - } + @SuppressWarnings("unchecked") + @Override + public AccountsCommon extractCommonPart(DocumentWrapper wrapDoc) throws Exception { + AccountsCommon account = wrapDoc.getWrappedObject(); + + String includeRolesQueryParamValue = (String) getServiceContext().getQueryParams().getFirst(AccountClient.INCLUDE_ROLES_QP); + boolean includeRoles = Tools.isTrue(includeRolesQueryParamValue); + if (includeRoles) { + AccountRoleSubResource accountRoleResource = new AccountRoleSubResource( + AccountRoleSubResource.ACCOUNT_ACCOUNTROLE_SERVICE); + AccountRole accountRole = accountRoleResource.getAccountRole(getServiceContext(), account.getCsid(), + SubjectType.ROLE); + account.setRoleList(AccountRoleFactory.convert(accountRole.getRole())); + } + + return wrapDoc.getWrappedObject(); + } @Override public void fillCommonPart(AccountsCommon obj, DocumentWrapper wrapDoc) @@ -218,7 +223,7 @@ public class AccountDocumentHandler DocumentWrapper> wrapDoc) throws Exception { - AccountsCommonList accList = this.extractPagingInfo(new AccountsCommonList(), wrapDoc); + AccountsCommonList accList = this.extractPagingInfo(new AccountsCommonList(), wrapDoc); // AccountsCommonList accList = new AccountsCommonList(); List list = accList.getAccountListItem(); @@ -290,12 +295,12 @@ public class AccountDocumentHandler * @param account */ @Override - public void sanitize(DocumentWrapper wrapDoc) { - AccountsCommon account = wrapDoc.getWrappedObject(); - sanitize(account); + public void sanitize(DocumentWrapper wrapDoc) { + AccountsCommon account = wrapDoc.getWrappedObject(); + sanitize(account); } - private void sanitize(AccountsCommon account) { + private void sanitize(AccountsCommon account) { account.setPassword(null); if (!SecurityUtils.isCSpaceAdmin()) { account.setTenants(new ArrayList(0)); -- 2.47.3