This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new cb3115698f Ensuring permissions during Realm update
cb3115698f is described below
commit cb3115698fea7f93db84460e82dbc8a49b3766da
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Tue Oct 20 12:47:54 2026 +0200
Ensuring permissions during Realm update
---
.../org/apache/syncope/core/logic/RealmLogic.java | 5 ++-
.../org/apache/syncope/fit/AbstractITCase.java | 2 ++
.../syncope/fit/core/AuthenticationITCase.java | 30 +++++++++---------
.../apache/syncope/fit/core/DelegationITCase.java | 2 +-
.../syncope/fit/core/ExceptionMapperITCase.java | 6 ++--
.../org/apache/syncope/fit/core/JWTITCase.java | 4 +--
.../apache/syncope/fit/core/KeymasterITCase.java | 2 +-
.../syncope/fit/core/LinkedAccountITCase.java | 12 ++++----
.../apache/syncope/fit/core/MacroTaskITCase.java | 2 +-
.../org/apache/syncope/fit/core/ManagerITCase.java | 2 +-
.../apache/syncope/fit/core/PullTaskITCase.java | 4 +--
.../org/apache/syncope/fit/core/RealmITCase.java | 36 +++++++++++++++++++++-
.../org/apache/syncope/fit/core/SCIMITCase.java | 2 +-
.../org/apache/syncope/fit/core/UserITCase.java | 10 +++---
.../apache/syncope/fit/core/UserIssuesITCase.java | 24 +++++++--------
.../apache/syncope/fit/core/UserRequestITCase.java | 6 ++--
.../apache/syncope/fit/core/UserSelfITCase.java | 24 +++++++--------
.../syncope/fit/enduser/AbstractEnduserITCase.java | 8 +++--
.../syncope/fit/enduser/AnonymousITCase.java | 4 +--
.../syncope/fit/enduser/AuthenticatedITCase.java | 4 +--
20 files changed, 116 insertions(+), 73 deletions(-)
diff --git
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
index f8c9bc57d6..c82895ce69 100644
---
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
+++
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
@@ -143,7 +143,7 @@ public class RealmLogic extends
AbstractTransactionalLogic<RealmTO> {
getOrDefault(IdRepoEntitlement.REALM_SEARCH, Set.of());
List<RealmTO> result = realmSearchDAO.search(baseRealms,
effectiveCond, pageable).stream().
map(realm -> binder.getRealmTO(
- realm,
RealmUtils.SubtreePredicate.of(authorizations).test(realm.getFullPath()))).
+ realm,
RealmUtils.SubtreePredicate.of(authorizations).test(realm.getFullPath()))).
sorted(Comparator.comparing(RealmTO::getFullPath)).
toList();
@@ -204,6 +204,9 @@ public class RealmLogic extends
AbstractTransactionalLogic<RealmTO> {
PropagationByResource<String> propByRes = binder.update(realm,
realmTO);
realm = realmDAO.save(realm);
+ // ensure that requester's administration rights are still valid
+
securityChecks(AuthContextUtils.getAuthorizations().get(IdRepoEntitlement.REALM_UPDATE),
realm.getFullPath());
+
List<PropagationTaskInfo> taskInfos =
propagationManager.setAttributeDeltas(
propagationManager.createTasks(realm, propByRes, null),
beforeAttrs);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index af674efe1e..86c2c9e3db 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -234,6 +234,8 @@ public abstract class AbstractITCase {
protected static final String ADMIN_PWD = "password";
+ protected static final String DEFAULT_PASSWORD = "password123";
+
protected static final String ADDRESS =
"http://localhost:9080/syncope/rest";
protected static final String BUILD_TOOLS_ADDRESS =
"http://localhost:9080/syncope-fit-build-tools/cxf";
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
index a403d8bc22..b6e6c2a8f8 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
@@ -125,7 +125,7 @@ public class AuthenticationITCase extends AbstractITCase {
assertNotNull(schemaTO);
// 4. read the schema created above (as user) - success
- SchemaService schemaService2 =
CLIENT_FACTORY.create(userTO.getUsername(), "password123").
+ SchemaService schemaService2 =
CLIENT_FACTORY.create(userTO.getUsername(), DEFAULT_PASSWORD).
getService(SchemaService.class);
schemaTO = schemaService2.read(SchemaType.PLAIN, schemaName);
assertNotNull(schemaTO);
@@ -149,7 +149,7 @@ public class AuthenticationITCase extends AbstractITCase {
UserTO userTO = createUser(userCR).getEntity();
assertNotNull(userTO);
- UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").
+ UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).
getService(UserService.class);
UserTO readUserTO =
userService2.read("1417acbe-cbf6-4277-9372-e75e04f97000");
@@ -176,7 +176,7 @@ public class AuthenticationITCase extends AbstractITCase {
// 1. user assigned to role 1, with search entitlement on realms /odd
and /even: won't find anything with
// root realm
- UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").
+ UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).
getService(UserService.class);
awaitIfExtSearchEnabled();
@@ -227,7 +227,7 @@ public class AuthenticationITCase extends AbstractITCase {
// 3. instantiate a delegate user service client, for further
operations
UserService delegatedUserService =
- CLIENT_FACTORY.create(delegatedAdmin.getUsername(),
"password123").getService(UserService.class);
+ CLIENT_FACTORY.create(delegatedAdmin.getUsername(),
DEFAULT_PASSWORD).getService(UserService.class);
// 4. as delegated, create user under realm / -> fail
UserCR userCR =
UserITCase.getUniqueSample("[email protected]");
@@ -301,7 +301,7 @@ public class AuthenticationITCase extends AbstractITCase {
assertNotNull(userTO);
String userKey = userTO.getKey();
- UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").
+ UserService userService2 = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).
getService(UserService.class);
assertEquals(0, userService2.read(userKey).getFailedLogins());
@@ -320,7 +320,7 @@ public class AuthenticationITCase extends AbstractITCase {
}
assertEquals(2, USER_SERVICE.read(userKey).getFailedLogins());
- UserService userService4 = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").
+ UserService userService4 = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).
getService(UserService.class);
assertEquals(0, userService4.read(userKey).getFailedLogins());
}
@@ -395,7 +395,7 @@ public class AuthenticationITCase extends AbstractITCase {
// Access with correct credentials should fail as user is suspended
try {
- CLIENT_FACTORY.create(userTO.getUsername(), "password123");
+ CLIENT_FACTORY.create(userTO.getUsername(), DEFAULT_PASSWORD);
fail("This should not happen");
} catch (NotAuthorizedException e) {
assertNotNull(e);
@@ -407,7 +407,7 @@ public class AuthenticationITCase extends AbstractITCase {
assertNotNull(userTO);
assertEquals("active", userTO.getStatus());
- SyncopeClient goodPwdClient =
CLIENT_FACTORY.create(userTO.getUsername(), "password123");
+ SyncopeClient goodPwdClient =
CLIENT_FACTORY.create(userTO.getUsername(), DEFAULT_PASSWORD);
assertEquals(0,
goodPwdClient.self().user().getFailedLogins().intValue());
}
@@ -431,7 +431,7 @@ public class AuthenticationITCase extends AbstractITCase {
e = assertThrows(
WebApplicationException.class,
- () -> CLIENT_FACTORY.create(userTO.getUsername(),
"password123").self());
+ () -> CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).self());
assertEquals(Response.Status.TOO_MANY_REQUESTS.getStatusCode(),
e.getResponse().getStatus());
}
@@ -516,7 +516,7 @@ public class AuthenticationITCase extends AbstractITCase {
// 2. try to authenticate: fail
try {
- CLIENT_FACTORY.create(userTO.getUsername(), "password123").self();
+ CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).self();
fail("This should not happen");
} catch (NotAuthorizedException e) {
assertNotNull(e);
@@ -533,7 +533,7 @@ public class AuthenticationITCase extends AbstractITCase {
assertEquals("active", userTO.getStatus());
// 4. try to authenticate again: success
- SyncopeClient.Self self = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").self();
+ SyncopeClient.Self self = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).self();
assertNotNull(self);
assertNotNull(self.entitlements());
assertEquals(List.of(), self.delegations());
@@ -545,7 +545,7 @@ public class AuthenticationITCase extends AbstractITCase {
// 1. create user with db resource
UserCR userCR =
UserITCase.getUniqueSample("[email protected]");
userCR.setRealm("/even/two");
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.getResources().add(RESOURCE_NAME_TESTDB);
UserTO user = createUser(userCR).getEntity();
assertNotNull(user);
@@ -566,10 +566,12 @@ public class AuthenticationITCase extends AbstractITCase {
JdbcTemplate jdbcTemplate = new JdbcTemplate(testDataSource);
String value = queryForObject(jdbcTemplate, MAX_WAIT_SECONDS,
"SELECT PASSWORD FROM test WHERE ID=?", String.class,
user.getUsername());
- assertEquals(encryptorManager.getInstance().encode("password123",
CipherAlgorithm.SHA1), value.toUpperCase());
+ assertEquals(
+ encryptorManager.getInstance().encode(DEFAULT_PASSWORD,
CipherAlgorithm.SHA1),
+ value.toUpperCase());
// 5. successfully authenticate with old (on db resource) and new (on
internal storage) password values
- SyncopeClient.Self self = CLIENT_FACTORY.create(user.getUsername(),
"password123").self();
+ SyncopeClient.Self self = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).self();
assertNotNull(self);
self = CLIENT_FACTORY.create(user.getUsername(), "password234").self();
assertNotNull(self);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DelegationITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DelegationITCase.java
index 7961ca204b..071634ebe9 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DelegationITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/DelegationITCase.java
@@ -155,7 +155,7 @@ public class DelegationITCase extends AbstractITCase {
delegation.setDelegated(delegated.getKey());
delegation.setStart(OffsetDateTime.now());
- DelegationService uds =
CLIENT_FACTORY.create(delegating.getUsername(), "password123").
+ DelegationService uds =
CLIENT_FACTORY.create(delegating.getUsername(), DEFAULT_PASSWORD).
getService(DelegationService.class);
// delegating user is not requesting user -> FAIL
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ExceptionMapperITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ExceptionMapperITCase.java
index 7638ea1211..3736a6b37d 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ExceptionMapperITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ExceptionMapperITCase.java
@@ -79,7 +79,7 @@ public class ExceptionMapperITCase extends AbstractITCase {
userTO1.getAuxClasses().add(typeClass.getKey());
String userId1 = getUUIDString() + "[email protected]";
userTO1.setUsername(userId1);
- userTO1.setPassword("password123");
+ userTO1.setPassword(DEFAULT_PASSWORD);
userTO1.getPlainAttrs().add(attr("userId", userId1));
userTO1.getPlainAttrs().add(attr("fullname", userId1));
@@ -94,7 +94,7 @@ public class ExceptionMapperITCase extends AbstractITCase {
userTO2.getAuxClasses().add(typeClass.getKey());
String userId2 = getUUIDString() + "[email protected]";
userTO2.setUsername(userId2);
- userTO2.setPassword("password123");
+ userTO2.setPassword(DEFAULT_PASSWORD);
userTO2.getPlainAttrs().add(attr("userId", userId2));
userTO2.getPlainAttrs().add(attr("fullname", userId2));
@@ -135,7 +135,7 @@ public class ExceptionMapperITCase extends AbstractITCase {
userCR.setRealm(SyncopeConstants.ROOT_REALM);
String userId = getUUIDString() + "[email protected]";
userCR.setUsername(userId);
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.getPlainAttrs().add(attr("userId", "issue654"));
userCR.getPlainAttrs().add(attr("fullname", userId));
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/JWTITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/JWTITCase.java
index 227100bbce..dd6dcd5c44 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/JWTITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/JWTITCase.java
@@ -496,7 +496,7 @@ public class JWTITCase extends AbstractITCase {
// login, get JWT with expiration
SyncopeClient.JwtInfo jwtInfo =
- CLIENT_FACTORY.create(user.getUsername(),
"password123").jwtInfo().orElseThrow();
+ CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).jwtInfo().orElseThrow();
Date expiration =
SignedJWT.parse(jwtInfo.value()).getJWTClaimsSet().getExpirationTime();
assertNotNull(expiration);
@@ -514,7 +514,7 @@ public class JWTITCase extends AbstractITCase {
// login again, get new JWT
// (even if ExpiredAccessTokenCleanup did not run yet, as it is
scheduled every 5 minutes)
- String newJWT = CLIENT_FACTORY.create(user.getUsername(),
"password123").jwtInfo().orElseThrow().value();
+ String newJWT = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).jwtInfo().orElseThrow().value();
assertNotEquals(jwtInfo.value(), newJWT);
} finally {
confParamOps.set(SyncopeConstants.MASTER_DOMAIN,
StandardConfParams.JWT_LIFETIME_MINUTES, orig);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
index 14b2c7982f..c3a79ee6f9 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/KeymasterITCase.java
@@ -269,7 +269,7 @@ public class KeymasterITCase extends AbstractITCase {
Response response = USER_SERVICE.create(
new UserCR.Builder(SyncopeConstants.ROOT_REALM, "monteverdi").
- password("password123").
+ password(DEFAULT_PASSWORD).
plainAttr(attr("email",
"[email protected]")).
build());
assertEquals(Response.Status.CREATED.getStatusCode(),
response.getStatus());
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LinkedAccountITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LinkedAccountITCase.java
index 7dcc666545..041f3c8d8e 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LinkedAccountITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/LinkedAccountITCase.java
@@ -200,7 +200,7 @@ public class LinkedAccountITCase extends AbstractITCase {
LinkedAccountTO account = new
LinkedAccountTO.Builder(RESOURCE_NAME_LDAP, connObjectKeyValue).build();
account.getPlainAttrs().add(attr("surname", "LINKED_SURNAME"));
- account.setPassword("Password123");
+ account.setPassword(DEFAULT_PASSWORD);
userUR.getLinkedAccounts().add(new
LinkedAccountUR.Builder().linkedAccountTO(account).build());
user = updateUser(userUR).getEntity();
@@ -247,7 +247,7 @@ public class LinkedAccountITCase extends AbstractITCase {
assertNull(getFirstLinkedAccountPassword(user.getKey()));
// 3. update linked account with adding a password
- account.setPassword("Password123");
+ account.setPassword(DEFAULT_PASSWORD);
userUR = new UserUR();
userUR.setKey(user.getKey());
userUR.getLinkedAccounts().add(new
LinkedAccountUR.Builder().linkedAccountTO(account).build());
@@ -269,7 +269,7 @@ public class LinkedAccountITCase extends AbstractITCase {
forEach(task -> TASK_SERVICE.delete(TaskType.PROPAGATION,
task.getKey()));
// set a correct password
- account.setPassword("Password123");
+ account.setPassword(DEFAULT_PASSWORD);
user = updateUser(userUR).getEntity();
assertNotNull(getFirstLinkedAccountPassword(user.getKey()));
@@ -492,7 +492,7 @@ public class LinkedAccountITCase extends AbstractITCase {
ObjectNode user = MAPPER.createObjectNode();
user.put("username", "linkedaccount1");
- user.put("password", "Password123");
+ user.put("password", DEFAULT_PASSWORD);
user.put("firstName", "Pasquale");
user.put("surname", "Vivaldi");
user.put("email", "[email protected]");
@@ -504,7 +504,7 @@ public class LinkedAccountITCase extends AbstractITCase {
user = MAPPER.createObjectNode();
user.put("username", "vivaldi");
- user.put("password", "Password123");
+ user.put("password", DEFAULT_PASSWORD);
user.put("firstName", "Giovannino");
user.put("surname", "Vivaldi");
user.put("email", "[email protected]");
@@ -516,7 +516,7 @@ public class LinkedAccountITCase extends AbstractITCase {
user = MAPPER.createObjectNode();
user.put("username", "not.vivaldi");
- user.put("password", "Password123");
+ user.put("password", DEFAULT_PASSWORD);
user.put("email", "[email protected]");
response = webClient.post(user.toString());
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MacroTaskITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MacroTaskITCase.java
index e443b4af3d..389137b9a7 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MacroTaskITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MacroTaskITCase.java
@@ -267,7 +267,7 @@ public class MacroTaskITCase extends AbstractITCase {
// 3. attempt to run the macro task -> fail
TaskService taskService = CLIENT_FACTORY.create(
- userTO.getUsername(),
"password123").getService(TaskService.class);
+ userTO.getUsername(),
DEFAULT_PASSWORD).getService(TaskService.class);
try {
taskService.execute(new
ExecSpecs.Builder().key(MACRO_TASK_KEY).build());
fail();
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ManagerITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ManagerITCase.java
index 3c8779c5d9..9faa8bd6e6 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ManagerITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ManagerITCase.java
@@ -71,7 +71,7 @@ public class ManagerITCase extends AbstractITCase {
assertTrue(matching.getResult().stream().anyMatch(user ->
managedKey.equals(user.getKey())));
// check manager realms
- SyncopeClient managerClient = CLIENT_FACTORY.create(managerUsername,
"password123");
+ SyncopeClient managerClient = CLIENT_FACTORY.create(managerUsername,
DEFAULT_PASSWORD);
Self self = managerClient.self();
Set<String> managerRealms =
self.entitlements().get(IdRepoEntitlement.USER_SEARCH);
assertEquals(1, managerRealms.size());
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index 2630e4a305..d63a974b47 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -269,7 +269,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
// -----------------------------
UserCR inUserRC = new UserCR();
inUserRC.setRealm(SyncopeConstants.ROOT_REALM);
- inUserRC.setPassword("password123");
+ inUserRC.setPassword(DEFAULT_PASSWORD);
String userName = "test9";
inUserRC.setUsername(userName);
inUserRC.getPlainAttrs().add(attr("firstname", "nome9"));
@@ -1012,7 +1012,7 @@ public class PullTaskITCase extends AbstractTaskITCase {
//-----------------------------
UserCR userCR = new UserCR();
userCR.setRealm(SyncopeConstants.ROOT_REALM);
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.setUsername("testuser2");
userCR.getPlainAttrs().add(attr("firstname", "testuser2"));
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
index 20329dcdb7..7e99dc8a55 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RealmITCase.java
@@ -577,6 +577,40 @@ public class RealmITCase extends AbstractITCase {
assertNull(getLdapRemoteObject("ou=test,o=isp"));
}
+ @Test
+ public void permissions() {
+ RoleTO realmUpdate = new RoleTO();
+ realmUpdate.setKey(getUUIDString());
+ realmUpdate.getEntitlements().add(IdRepoEntitlement.REALM_UPDATE);
+ realmUpdate.getRealms().add("/even");
+ realmUpdate = createRole(realmUpdate);
+
+ UserCR req =
UserITCase.getUniqueSample("[email protected]");
+ req.getRoles().add(realmUpdate.getKey());
+ UserTO user = createUser(req).getEntity();
+
+ // user can update only realms with base /even
+ RealmService service = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).
+ getService(RealmService.class);
+
+ // 1. two can be safely updated because is descendant of even
+ RealmTO two = getRealm("/even/two").orElseThrow();
+ assertDoesNotThrow(() -> service.update(two));
+
+ // 2. odd cannot be updated because not descendant of even
+ RealmTO odd = getRealm("/odd").orElseThrow();
+ SyncopeClientException e = assertThrows(SyncopeClientException.class,
() -> service.update(odd));
+ assertEquals(ClientExceptionType.DelegatedAdministration, e.getType());
+
+ // 3. attempting to change two's parent, to move it under odd, is
forbidden
+ two.setParent(odd.getKey());
+ e = assertThrows(SyncopeClientException.class, () ->
service.update(two));
+ assertEquals(ClientExceptionType.DelegatedAdministration, e.getType());
+
+ // 4. check that two was not changed
+ assertEquals(getRealm("/even").orElseThrow().getKey(),
getRealm("/even/two").orElseThrow().getParent());
+ }
+
@Test
public void issueSYNCOPE1472() {
// 1. assign twice resource-ldap-orgunit to /odd
@@ -613,7 +647,7 @@ public class RealmITCase extends AbstractITCase {
userCR.getRoles().add(role.getKey());
UserTO manager = createUser(userCR).getEntity();
RealmService managerRealmService = CLIENT_FACTORY.create(
- manager.getUsername(),
"password123").getService(RealmService.class);
+ manager.getUsername(),
DEFAULT_PASSWORD).getService(RealmService.class);
RealmTO childRealm = null;
try {
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
index 5820704c9a..7ad32932e0 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SCIMITCase.java
@@ -139,7 +139,7 @@ public class SCIMITCase extends AbstractITCase {
private static SCIMUser getSampleUser(final String username, final
List<String> schemas) {
SCIMUser user = new SCIMUser(null, schemas, null, username, true);
- user.setPassword("password123");
+ user.setPassword(DEFAULT_PASSWORD);
SCIMUserName name = new SCIMUserName();
name.setGivenName(username);
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 92148820cd..301e1fc113 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -113,7 +113,7 @@ public class UserITCase extends AbstractITCase {
public static UserCR getSample(final String email) {
return new UserCR.Builder(SyncopeConstants.ROOT_REALM, email).
- password("password123").
+ password(DEFAULT_PASSWORD).
plainAttr(attr("fullname", email)).
plainAttr(attr("firstname", email)).
plainAttr(attr("surname", "surname")).
@@ -140,7 +140,7 @@ public class UserITCase extends AbstractITCase {
public void createUserWithNoPropagation() {
// create a new user
UserCR req = getUniqueSample("[email protected]");
- req.setPassword("password123");
+ req.setPassword(DEFAULT_PASSWORD);
req.getResources().add(RESOURCE_NAME_NOPROPAGATION);
UserTO userTO = createUser(req).getEntity();
@@ -346,7 +346,7 @@ public class UserITCase extends AbstractITCase {
// 3. verify password
try {
- SyncopeClient.Self self =
CLIENT_FACTORY.create(userTO.getUsername(), "password123").self();
+ SyncopeClient.Self self =
CLIENT_FACTORY.create(userTO.getUsername(), DEFAULT_PASSWORD).self();
assertNotNull(self);
} catch (NotAuthorizedException e) {
fail("Credentials should be valid and not cause
NotAuthorizedException");
@@ -551,7 +551,7 @@ public class UserITCase extends AbstractITCase {
UserUR userUR = new UserUR();
userUR.setKey(userTO.getKey());
- userUR.setPassword(new
PasswordPatch.Builder().value("password123").build());
+ userUR.setPassword(new
PasswordPatch.Builder().value(DEFAULT_PASSWORD).build());
USER_SERVICE.update(userUR);
});
@@ -1203,7 +1203,7 @@ public class UserITCase extends AbstractITCase {
}
ResourceAR resourceAR = new ResourceAR.Builder().key(actual.getKey()).
-
value("password123").action(ResourceAssociationAction.ASSIGN).resource(RESOURCE_NAME_CSV).build();
+
value(DEFAULT_PASSWORD).action(ResourceAssociationAction.ASSIGN).resource(RESOURCE_NAME_CSV).build();
assertNotNull(parseBatchResponse(USER_SERVICE.associate(resourceAR)));
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
index 30109021cb..d8cb169b28 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserIssuesITCase.java
@@ -149,7 +149,7 @@ public class UserIssuesITCase extends AbstractITCase {
userCR.setRealm(SyncopeConstants.ROOT_REALM);
String userId = getUUIDString() + "[email protected]";
userCR.setUsername(userId);
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.getPlainAttrs().add(attr("userId", userId));
userCR.getPlainAttrs().add(attr("fullname", userId));
@@ -749,7 +749,7 @@ public class UserIssuesITCase extends AbstractITCase {
userCR.setRealm(SyncopeConstants.ROOT_REALM);
String userId = getUUIDString() + "[email protected]";
userCR.setUsername(userId);
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.getPlainAttrs().add(attr("userId", userId));
userCR.getPlainAttrs().add(attr("fullname", userId));
@@ -866,7 +866,7 @@ public class UserIssuesITCase extends AbstractITCase {
// 3. try (and succeed) to perform simple LDAP binding with provided
password ('password123')
assertNotNull(getLdapRemoteObject(
connObject.getAttr(Name.NAME).orElseThrow().getValues().getFirst(),
- "password123",
+ DEFAULT_PASSWORD,
connObject.getAttr(Name.NAME).orElseThrow().getValues().getFirst()));
// 4. update user without any password change request
@@ -880,7 +880,7 @@ public class UserIssuesITCase extends AbstractITCase {
// 5. try (and succeed again) to perform simple LDAP binding: password
has not changed
assertNotNull(getLdapRemoteObject(
connObject.getAttr(Name.NAME).orElseThrow().getValues().getFirst(),
- "password123",
+ DEFAULT_PASSWORD,
connObject.getAttr(Name.NAME).orElseThrow().getValues().getFirst()));
}
@@ -1223,7 +1223,7 @@ public class UserIssuesITCase extends AbstractITCase {
assertTrue(e.getElements().iterator().next().startsWith("InvalidPassword"));
}
- userCR.setPassword("password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
UserTO user = createUser(userCR).getEntity();
assertNotNull(user);
} finally {
@@ -1394,14 +1394,14 @@ public class UserIssuesITCase extends AbstractITCase {
try {
// 2. create user under /even/two to get password policy with
history length 1
UserCR userCR =
UserITCase.getUniqueSample("[email protected]");
- userCR.setPassword("Password123");
+ userCR.setPassword(DEFAULT_PASSWORD);
userCR.setRealm("/even/two");
UserTO userTO = createUser(userCR).getEntity();
// 3. attempt to set the same password value: fails
UserUR req = new UserUR();
req.setKey(userTO.getKey());
- req.setPassword(new
PasswordPatch.Builder().onSyncope(true).value("Password123").build());
+ req.setPassword(new
PasswordPatch.Builder().onSyncope(true).value(DEFAULT_PASSWORD).build());
try {
updateUser(req);
fail("Password update should not work");
@@ -1415,7 +1415,7 @@ public class UserIssuesITCase extends AbstractITCase {
assertDoesNotThrow(() -> updateUser(req).getEntity());
// 5. set the original password value: works (history length is 1)
- req.setPassword(new
PasswordPatch.Builder().onSyncope(true).value("Password123").build());
+ req.setPassword(new
PasswordPatch.Builder().onSyncope(true).value(DEFAULT_PASSWORD).build());
assertDoesNotThrow(() -> updateUser(req).getEntity());
} finally {
// finally revert the cipher algorithm
@@ -1431,7 +1431,7 @@ public class UserIssuesITCase extends AbstractITCase {
userUR.setPassword(new PasswordPatch.Builder()
.onSyncope(false)
.resource(RESOURCE_NAME_TESTDB)
- .value("Password123")
+ .value(DEFAULT_PASSWORD)
.build());
userUR.getResources().add(new StringPatchItem.Builder()
.value(RESOURCE_NAME_TESTDB)
@@ -1528,7 +1528,7 @@ public class UserIssuesITCase extends AbstractITCase {
userCR.getRoles().add(role.getKey());
UserTO userTO = createUser(userCR).getEntity();
- UserService userService = CLIENT_FACTORY.create(userTO.getUsername(),
"password123").
+ UserService userService = CLIENT_FACTORY.create(userTO.getUsername(),
DEFAULT_PASSWORD).
getService(UserService.class);
Response response = userService.associate(new
ResourceAR.Builder().key(userTO.getKey()).
resource(RESOURCE_NAME_NOPROPAGATION).action(ResourceAssociationAction.ASSIGN).build());
@@ -1750,7 +1750,7 @@ public class UserIssuesITCase extends AbstractITCase {
.entityKey("c9b2dec2-00a7-4855-97c0-d854842b4b24").build())
.getResult().stream().map(PropagationTaskTO.class::cast)
.toList().stream().noneMatch(pt ->
ResourceOperation.DELETE == pt.
- getOperation()));
+ getOperation()));
GROUP_SERVICE.delete(dGroupForPropagation.getKey());
await().atMost(MAX_WAIT_SECONDS, TimeUnit.SECONDS).until(
() -> TASK_SERVICE.search(new
TaskQuery.Builder(TaskType.PROPAGATION)
@@ -1759,7 +1759,7 @@ public class UserIssuesITCase extends AbstractITCase {
.entityKey("b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee").build())
.getResult().stream().map(PropagationTaskTO.class::cast)
.toList().stream().anyMatch(pt ->
ResourceOperation.DELETE == pt.
- getOperation()));
+ getOperation()));
}
@Test
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
index 8bcedc973c..b28a99c67d 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserRequestITCase.java
@@ -85,7 +85,7 @@ public class UserRequestITCase extends AbstractITCase {
assertEquals(req.getUsername(), user.getUsername());
// check that user can see the ongoing request
- SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
PagedResult<UserRequest> requests =
client.getService(UserRequestService.class).
listRequests(new
UserRequestQuery.Builder().user(user.getKey()).build());
assertEquals(1, requests.getTotalCount());
@@ -194,7 +194,7 @@ public class UserRequestITCase extends AbstractITCase {
List<RelationshipTO> relationships =
USER_SERVICE.read(user.getKey()).getRelationships();
assertTrue(relationships.isEmpty());
- SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
// start request as user
UserRequestService service =
client.getService(UserRequestService.class);
@@ -265,7 +265,7 @@ public class UserRequestITCase extends AbstractITCase {
UserTO user =
createUser(UserITCase.getUniqueSample("[email protected]")).getEntity();
assertNotNull(user);
- SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient client = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
WorkflowTaskExecInput testInput = new WorkflowTaskExecInput();
testInput.getVariables().put("providedVariable", "test");
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
index 8bcb04a6b0..2561e7da87 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserSelfITCase.java
@@ -212,7 +212,7 @@ public class UserSelfITCase extends AbstractITCase {
@Test
public void read() {
UserTO user =
createUser(UserITCase.getUniqueSample("[email protected]")).getEntity();
- UserService us2 = CLIENT_FACTORY.create(user.getUsername(),
"password123").getService(UserService.class);
+ UserService us2 = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).getService(UserService.class);
try {
us2.read(user.getKey());
fail("This should not happen");
@@ -220,7 +220,7 @@ public class UserSelfITCase extends AbstractITCase {
assertNotNull(e);
}
- SyncopeClient.Self self = CLIENT_FACTORY.create(user.getUsername(),
"password123").self();
+ SyncopeClient.Self self = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD).self();
assertEquals(user.getUsername(), self.user().getUsername());
}
@@ -247,7 +247,7 @@ public class UserSelfITCase extends AbstractITCase {
userUR.setKey(created.getKey());
userUR.setUsername(new
StringReplacePatchItem.Builder().value(created.getUsername() + "XX").build());
- SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), "password123");
+ SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), DEFAULT_PASSWORD);
UserTO updated =
authClient.getService(UserSelfService.class).update(userUR).
readEntity(new GenericType<ProvisioningResult<UserTO>>() {
}).getEntity();
@@ -278,7 +278,7 @@ public class UserSelfITCase extends AbstractITCase {
userUR.setPassword(new PasswordPatch.Builder().
value("newPassword123").onSyncope(false).resource(RESOURCE_NAME_TESTDB).build());
- SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), "password123");
+ SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), DEFAULT_PASSWORD);
UserTO updated =
authClient.getService(UserSelfService.class).update(userUR).
readEntity(new GenericType<ProvisioningResult<UserTO>>() {
}).getEntity();
@@ -318,7 +318,7 @@ public class UserSelfITCase extends AbstractITCase {
UserTO created =
createUser(UserITCase.getUniqueSample("[email protected]")).getEntity();
assertNotNull(created);
- SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), "password123");
+ SyncopeClient authClient =
CLIENT_FACTORY.create(created.getUsername(), DEFAULT_PASSWORD);
UserTO deleted =
authClient.getService(UserSelfService.class).delete().readEntity(
new GenericType<ProvisioningResult<UserTO>>() {
}).getEntity();
@@ -346,7 +346,7 @@ public class UserSelfITCase extends AbstractITCase {
assertTrue(StringUtils.isNotBlank(pwdOnResource));
// 2. verify that new user is able to authenticate
- SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
UserTO read = authClient.self().user();
assertNotNull(read);
@@ -433,7 +433,7 @@ public class UserSelfITCase extends AbstractITCase {
createUser(user);
// 2. verify that new user is able to authenticate
- SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
UserTO read = authClient.self().user();
assertNotNull(read);
@@ -495,10 +495,10 @@ public class UserSelfITCase extends AbstractITCase {
// 3. change password
vivaldiClient.getService(UserSelfService.class).
- mustChangePassword(new
PasswordPatch.Builder().value("password123").build());
+ mustChangePassword(new
PasswordPatch.Builder().value(DEFAULT_PASSWORD).build());
// 4. verify it worked
- SyncopeClient.Self self = CLIENT_FACTORY.create("vivaldi",
"password123").self();
+ SyncopeClient.Self self = CLIENT_FACTORY.create("vivaldi",
DEFAULT_PASSWORD).self();
assertFalse(self.user().isMustChangePassword());
}
@@ -683,7 +683,7 @@ public class UserSelfITCase extends AbstractITCase {
req.setKey(created.getKey());
req.getMemberships().add(new
MembershipUR.Builder("b1f7c12d-ec83-441f-a50e-1691daaedf3b").build());
- SyncopeClient client = CLIENT_FACTORY.create(created.getUsername(),
"password123");
+ SyncopeClient client = CLIENT_FACTORY.create(created.getUsername(),
DEFAULT_PASSWORD);
Response response =
client.getService(UserSelfService.class).update(req);
assertEquals(Response.Status.OK.getStatusCode(), response.getStatus());
assertEquals("updateApproval",
USER_SERVICE.read(created.getKey()).getStatus());
@@ -830,7 +830,7 @@ public class UserSelfITCase extends AbstractITCase {
role(new StringPatchItem.Builder().value("User
manager").build()).
build();
- SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
e = assertThrows(
SyncopeClientException.class,
() ->
authClient.getService(UserSelfService.class).update(userUR));
@@ -877,7 +877,7 @@ public class UserSelfITCase extends AbstractITCase {
role(new StringPatchItem.Builder().value("User
manager").build()).
build();
- SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
"password123");
+ SyncopeClient authClient = CLIENT_FACTORY.create(user.getUsername(),
DEFAULT_PASSWORD);
user = authClient.getService(UserSelfService.class).
update(userUR).
readEntity(new GenericType<ProvisioningResult<UserTO>>() {
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
index 3bbe0b70a7..a9b0154730 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
@@ -65,6 +65,8 @@ import
org.springframework.test.context.support.TestPropertySourceUtils;
public abstract class AbstractEnduserITCase extends AbstractUIITCase {
+ protected static final String DEFAULT_PASSWORD = "password123";
+
@ImportAutoConfiguration(classes = {
SelfKeymasterClientContext.class,
ZookeeperKeymasterClientContext.class,
@@ -180,7 +182,7 @@ public abstract class AbstractEnduserITCase extends
AbstractUIITCase {
} catch (SyncopeClientException e) {
if (e.getType() == ClientExceptionType.NotFound) {
USER_SERVICE.create(new
UserCR.Builder(SyncopeConstants.ROOT_REALM, "mustchangepassword").
- password("password123").
+ password(DEFAULT_PASSWORD).
mustChangePassword(true).
plainAttr(attr("fullname",
"[email protected]")).
plainAttr(attr("firstname",
"[email protected]")).
@@ -201,7 +203,7 @@ public abstract class AbstractEnduserITCase extends
AbstractUIITCase {
} catch (SyncopeClientException e) {
if (e.getType() == ClientExceptionType.NotFound) {
USER_SERVICE.create(new
UserCR.Builder(SyncopeConstants.ROOT_REALM, "selfpwdreset").
- password("password123").
+ password(DEFAULT_PASSWORD).
plainAttr(attr("fullname", "[email protected]")).
plainAttr(attr("firstname",
"[email protected]")).
plainAttr(attr("surname", "surname")).
@@ -221,7 +223,7 @@ public abstract class AbstractEnduserITCase extends
AbstractUIITCase {
} catch (SyncopeClientException e) {
if (e.getType() == ClientExceptionType.NotFound) {
USER_SERVICE.create(new
UserCR.Builder(SyncopeConstants.ROOT_REALM, "selfupdate").
- password("password123").
+ password(DEFAULT_PASSWORD).
plainAttr(attr("fullname", "[email protected]")).
plainAttr(attr("firstname", "[email protected]")).
plainAttr(attr("surname", "surname")).
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AnonymousITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AnonymousITCase.java
index 49cb92874d..a8ef15e43f 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AnonymousITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AnonymousITCase.java
@@ -58,11 +58,11 @@ public class AnonymousITCase extends AbstractEnduserITCase {
formTester.setValue(
"userDetailsPanelCard:contentPanel:password:passwordPanel:passwordInnerForm:password:passwordField",
- "Password123");
+ DEFAULT_PASSWORD);
formTester.setValue(
"userDetailsPanelCard:contentPanel:password:passwordPanel:passwordInnerForm:confirmPassword:"
+ "passwordField",
- "Password123");
+ DEFAULT_PASSWORD);
formTester.setValue(
"plainAttrsPanelCard:contentPanel:plainSchemas:schemas:7:panel:textField",
diff --git
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AuthenticatedITCase.java
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AuthenticatedITCase.java
index c4d73c93d8..f0044ea78a 100644
---
a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AuthenticatedITCase.java
+++
b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AuthenticatedITCase.java
@@ -58,7 +58,7 @@ public class AuthenticatedITCase extends
AbstractEnduserITCase {
mustChangePassword(new
BooleanReplacePatchItem.Builder().value(Boolean.TRUE).build()).build());
TESTER.startPage(Login.class);
- doLogin("mustchangepassword", "password123");
+ doLogin("mustchangepassword", DEFAULT_PASSWORD);
TESTER.assertRenderedPage(MustChangePassword.class);
@@ -95,7 +95,7 @@ public class AuthenticatedITCase extends
AbstractEnduserITCase {
String newEmail = "[email protected]";
TESTER.startPage(Login.class);
- doLogin(username, "password123");
+ doLogin(username, DEFAULT_PASSWORD);
TESTER.assertComponent("body:contentWrapper:content:userProfileInfo:userProfile",
WebMarkupContainer.class);