use of org.camunda.bpm.engine.identity.User in project camunda-bpm-platform by camunda.
the class LdapUserQueryTest method testFilterByFirstnameLike.
public void testFilterByFirstnameLike() {
User user = identityService.createUserQuery().userFirstNameLike("Osc*").singleResult();
assertNotNull(user);
user = identityService.createUserQuery().userFirstNameLike("non-exist*").singleResult();
assertNull(user);
}
use of org.camunda.bpm.engine.identity.User in project camunda-bpm-platform by camunda.
the class LdapIdentityProviderSession method findUsersWithoutGroupId.
public List<User> findUsersWithoutGroupId(LdapUserQueryImpl query, String userBaseDn, boolean ignorePagination) {
if (ldapConfiguration.isSortControlSupported()) {
applyRequestControls(query);
}
NamingEnumeration<SearchResult> enumeration = null;
try {
String filter = getUserSearchFilter(query);
enumeration = initialContext.search(userBaseDn, filter, ldapConfiguration.getSearchControls());
// perform client-side paging
int resultCount = 0;
List<User> userList = new ArrayList<User>();
while (enumeration.hasMoreElements() && (userList.size() < query.getMaxResults() || ignorePagination)) {
SearchResult result = enumeration.nextElement();
UserEntity user = transformUser(result);
if (isAuthenticatedUser(user) || isAuthorized(READ, USER, user.getId())) {
if (resultCount >= query.getFirstResult() || ignorePagination) {
userList.add(user);
}
resultCount++;
}
}
return userList;
} catch (NamingException e) {
throw new IdentityProviderException("Could not query for users", e);
} finally {
try {
if (enumeration != null) {
enumeration.close();
}
} catch (Exception e) {
// ignore silently
}
}
}
use of org.camunda.bpm.engine.identity.User in project camunda-bpm-platform by camunda.
the class HalResourceCacheTest method testEntityCaching.
@Test
public void testEntityCaching() {
String[] userIds = new String[] { "test" };
// mock user and query
User user = mock(User.class);
when(user.getId()).thenReturn(userIds[0]);
when(user.getFirstName()).thenReturn("kermit");
UserQuery userQuery = mock(UserQuery.class);
when(userQuery.userIdIn(Matchers.<String[]>anyVararg())).thenReturn(userQuery);
when(userQuery.listPage(anyInt(), anyInt())).thenReturn(Arrays.asList(user));
when(processEngine.getIdentityService().createUserQuery()).thenReturn(userQuery);
// configure cache
HalRelationCacheConfiguration configuration = new HalRelationCacheConfiguration();
configuration.setCacheImplementationClass(DefaultHalResourceCache.class);
Map<String, Object> halUserConfig = new HashMap<String, Object>();
halUserConfig.put("capacity", 100);
halUserConfig.put("secondsToLive", 10000);
configuration.addCacheConfiguration(HalUser.class, halUserConfig);
contextListener.configureCaches(configuration);
// cache exists and is empty
DefaultHalResourceCache cache = (DefaultHalResourceCache) Hal.getInstance().getHalRelationCache(HalUser.class);
assertNotNull(cache);
assertEquals(0, cache.size());
// get link resolver and resolve user
HalLinkResolver linkResolver = Hal.getInstance().getLinkResolver(UserRestService.class);
List<HalResource<?>> halUsers = linkResolver.resolveLinks(userIds, processEngine);
// mocked user was resolved
assertNotNull(halUsers);
assertEquals(1, halUsers.size());
HalUser halUser = (HalUser) halUsers.get(0);
assertEquals("kermit", halUser.getFirstName());
// cache contains user
assertEquals(1, cache.size());
// change user mock
when(user.getFirstName()).thenReturn("fritz");
// resolve users again
halUsers = linkResolver.resolveLinks(userIds, processEngine);
// cached mocked user was resolved with old name
assertNotNull(halUsers);
assertEquals(1, halUsers.size());
halUser = (HalUser) halUsers.get(0);
assertEquals("kermit", halUser.getFirstName());
forwardTime(cache.getSecondsToLive() * 3);
// resolve users again
halUsers = linkResolver.resolveLinks(userIds, processEngine);
// new mocked user was resolved with old name
assertNotNull(halUsers);
assertEquals(1, halUsers.size());
halUser = (HalUser) halUsers.get(0);
assertEquals("fritz", halUser.getFirstName());
}
use of org.camunda.bpm.engine.identity.User in project camunda-bpm-platform by camunda.
the class UserResourceImpl method updateCredentials.
public void updateCredentials(UserCredentialsDto account) {
ensureNotReadOnly();
Authentication currentAuthentication = identityService.getCurrentAuthentication();
if (currentAuthentication != null && currentAuthentication.getUserId() != null) {
if (!identityService.checkPassword(currentAuthentication.getUserId(), account.getAuthenticatedUserPassword())) {
throw new InvalidRequestException(Status.BAD_REQUEST, "The given authenticated user password is not valid.");
}
}
User dbUser = findUserObject();
if (dbUser == null) {
throw new InvalidRequestException(Status.NOT_FOUND, "User with id " + resourceId + " does not exist");
}
dbUser.setPassword(account.getPassword());
identityService.saveUser(dbUser);
}
use of org.camunda.bpm.engine.identity.User in project camunda-bpm-platform by camunda.
the class UserRestServiceImpl method queryUsers.
public List<UserProfileDto> queryUsers(UserQueryDto queryDto, Integer firstResult, Integer maxResults) {
queryDto.setObjectMapper(getObjectMapper());
UserQuery query = queryDto.toQuery(getProcessEngine());
List<User> resultList;
if (firstResult != null || maxResults != null) {
resultList = executePaginatedQuery(query, firstResult, maxResults);
} else {
resultList = query.list();
}
return UserProfileDto.fromUserList(resultList);
}
Aggregations