package ru.ulstu.user.util; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UserDetails; import ru.ulstu.configuration.Constants; public class UserUtils { private static final int DEF_COUNT = 20; public static String generateActivationKey() { return RandomStringUtils.randomNumeric(DEF_COUNT); } public static String generateResetKey() { return RandomStringUtils.randomNumeric(DEF_COUNT); } public static String getCurrentUserLogin() { final SecurityContext securityContext = SecurityContextHolder.getContext(); if (securityContext == null) { return null; } final Authentication authentication = securityContext.getAuthentication(); if (authentication.getPrincipal() instanceof UserDetails) { final UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal(); return springSecurityUser.getUsername(); } if (authentication.getPrincipal() instanceof String) { return (String) authentication.getPrincipal(); } return null; } public static String generatePassword() { return RandomStringUtils.randomAscii(Constants.MIN_PASSWORD_LENGTH, Constants.MAX_PASSWORD_LENGTH); } }