in component-test/src/main/java/TestApplications.java [262:322]
public void applicationIssuedRefreshTokenHappyCase() throws InterruptedException {
final ApplicationSignatureTestData appPlusSig;
final Permission rolePermission = buildRolePermission();
final Permission userPermission = buildUserPermission();
try (final AutoUserContext ignored
= tenantApplicationSecurityEnvironment.createAutoSeshatContext()) {
appPlusSig = setApplicationSignature();
createApplicationPermission(appPlusSig.getApplicationIdentifier(), rolePermission);
createApplicationPermission(appPlusSig.getApplicationIdentifier(), userPermission);
getTestSubject().createApplicationCallEndpointSet(
appPlusSig.getApplicationIdentifier(),
new CallEndpointSet(CALL_ENDPOINT_SET_IDENTIFIER,
Arrays.asList(rolePermission.getPermittableEndpointGroupIdentifier(),
userPermission.getPermittableEndpointGroupIdentifier())));
Assert.assertTrue(eventRecorder.wait(EventConstants.OPERATION_POST_APPLICATION_CALLENDPOINTSET,
new ApplicationCallEndpointSetEvent(appPlusSig.getApplicationIdentifier(),
CALL_ENDPOINT_SET_IDENTIFIER)));
}
final String userid;
final String userPassword;
try (final AutoUserContext ignored = loginAdmin()) {
final String selfManagementRoleId = createRole(rolePermission, userPermission);
userPassword = RandomStringUtils.randomAlphanumeric(5);
userid = createUserWithNonexpiredPassword(userPassword, selfManagementRoleId);
}
try (final AutoUserContext ignored = loginUser(userid, userPassword)) {
getTestSubject().setApplicationPermissionEnabledForUser(
appPlusSig.getApplicationIdentifier(),
userPermission.getPermittableEndpointGroupIdentifier(),
userid,
true);
getTestSubject().setApplicationPermissionEnabledForUser(
appPlusSig.getApplicationIdentifier(),
rolePermission.getPermittableEndpointGroupIdentifier(),
userid,
true);
}
final TokenSerializationResult tokenSerializationResult =
new TenantRefreshTokenSerializer().build(new TenantRefreshTokenSerializer.Specification()
.setUser(userid)
.setEndpointSet(CALL_ENDPOINT_SET_IDENTIFIER)
.setSecondsToLive(30)
.setKeyTimestamp(appPlusSig.getKeyTimestamp())
.setPrivateKey(appPlusSig.getKeyPair().privateKey())
.setSourceApplication(appPlusSig.getApplicationIdentifier()));
final Authentication applicationAuthentication = getTestSubject().refresh(tokenSerializationResult.getToken());
try (final AutoUserContext ignored = new AutoUserContext(userid, applicationAuthentication.getAccessToken())) {
final List<User> users = getTestSubject().getUsers();
Assert.assertFalse(users.isEmpty());
}
}