public User createUser(ManagedUserDTO managedUserDTO) { User user = new User(); user.setLogin(managedUserDTO.getLogin()); user.setFirstName(managedUserDTO.getFirstName()); user.setLastName(managedUserDTO.getLastName()); user.setEmail(managedUserDTO.getEmail()); if (managedUserDTO.getLangKey() == null) { user.setLangKey("en"); // default language is English } else { user.setLangKey(managedUserDTO.getLangKey()); } Set<Authority> authorities = new HashSet<>(); managedUserDTO .getAuthorities() .stream() .forEach(authority -> authorities.add(authorityRepository.findOne(authority))); user.setAuthorities(authorities); String encryptedPassword = passwordEncoder.encode(RandomUtil.generatePassword()); user.setPassword(encryptedPassword); user.setResetKey(RandomUtil.generateResetKey()); user.setResetDate(ZonedDateTime.now()); user.setActivated(true); userRepository.save(user); log.debug("Created Information for User: {}", user); return user; }