Search in sources :

Example 56 with User

use of org.summerb.users.api.dto.User in project summerb by skarpushin.

the class PersistentTokenRepositoryDefaultImpl method removeUserTokens.

@Override
public void removeUserTokens(String username) {
    try {
        User user = userService.getUserByEmail(username);
        List<AuthToken> authTokens = authTokenService.findUserAuthTokens(user.getUuid());
        for (AuthToken authToken : authTokens) {
            authTokenService.deleteAuthToken(authToken.getUuid());
        }
    } catch (Throwable e) {
        throw new RuntimeException("Failed to delete user auth tokens", e);
    }
}
Also used : User(org.summerb.users.api.dto.User) AuthToken(org.summerb.users.api.dto.AuthToken)

Example 57 with User

use of org.summerb.users.api.dto.User in project summerb by skarpushin.

the class PersistentTokenRepositoryDefaultImpl method getTokenForSeries.

@Override
public PersistentRememberMeToken getTokenForSeries(String seriesId) {
    try {
        AuthToken authToken = authTokenService.getAuthTokenByUuid(seriesId);
        User user = userService.getUserByUuid(authToken.getUserUuid());
        return new PersistentRememberMeToken(user.getEmail(), authToken.getUuid(), authToken.getTokenValue(), new Date(authToken.getLastVerifiedAt()));
    } catch (Throwable e) {
        log.info("Persistent auth token wasn't found for seriesId " + seriesId);
        return null;
    }
}
Also used : PersistentRememberMeToken(org.springframework.security.web.authentication.rememberme.PersistentRememberMeToken) User(org.summerb.users.api.dto.User) AuthToken(org.summerb.users.api.dto.AuthToken) Date(java.util.Date)

Example 58 with User

use of org.summerb.users.api.dto.User in project summerb by skarpushin.

the class UserDetailsServiceDefaultImpl method loadUserByUsername.

@Override
public UserDetails loadUserByUsername(String userEmail) throws UsernameNotFoundException {
    try {
        User user = userService.getUserByEmail(userEmail);
        List<String> permissions = permissionService.findUserPermissionsForSubject(SecurityConstants.DOMAIN, user.getUuid(), null);
        AuthToken authToken = null;
        UserDetailsImpl ret = new UserDetailsImpl(user, null, permissions, authToken);
        return ret;
    } catch (UserNotFoundException e) {
        throw new UsernameNotFoundException("User not found", e);
    } catch (FieldValidationException e) {
        throw new UsernameNotFoundException("Email provided in invalid format", e);
    } catch (Throwable t) {
        throw new UsernameNotFoundException("Failed to get user by email", t);
    }
}
Also used : UserNotFoundException(org.summerb.users.api.exceptions.UserNotFoundException) UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) FieldValidationException(org.summerb.validation.FieldValidationException) User(org.summerb.users.api.dto.User) AuthToken(org.summerb.users.api.dto.AuthToken)

Example 59 with User

use of org.summerb.users.api.dto.User in project summerb by skarpushin.

the class LoginController method processRegisterForm.

@RequestMapping(method = RequestMethod.POST, value = SecurityActionsUrlsProviderDefaultImpl.REGISTER)
public String processRegisterForm(@ModelAttribute(ATTR_REGISTRATION) Registration registration, Model model, HttpServletRequest request) {
    if (!isAutoTestMode) {
        CaptchaController.assertCaptchaTokenValid("register", registration.getCaptcha(), request);
    }
    try {
        // Create user
        User user = usersServiceFacade.registerUser(registration);
        model.addAttribute(ATTR_REGISTERED, true);
        if (isDevMode) {
            String activationAbsoluteLink = absoluteUrlBuilder.buildExternalUrl(securityActionsUrlsProvider.buildRegistrationActivationPath(user, null));
            model.addAttribute(UserAccountChangeHadlersDefaultImpl.ATTR_ACTIVATION_LINK, activationAbsoluteLink);
        }
    } catch (FieldValidationException fve) {
        model.addAttribute(ControllerBase.ATTR_VALIDATION_ERRORS, new ValidationErrorsVm(fve.getErrors()));
    }
    return views.registerForm();
}
Also used : FieldValidationException(org.summerb.validation.FieldValidationException) User(org.summerb.users.api.dto.User) ValidationErrorsVm(org.summerb.webappboilerplate.model.ValidationErrorsVm) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 60 with User

use of org.summerb.users.api.dto.User in project summerb by skarpushin.

the class UsersServiceFacadeImpl method activateRegistration.

@Transactional(rollbackFor = Throwable.class)
@Override
public void activateRegistration(String userUuid) throws GenericException {
    try {
        // Validate
        if (!StringUtils.hasText(userUuid)) {
            throw new GenericException(SecurityMessageCodes.NEED_ACTIVATION_TOKEN);
        }
        // Search user
        User user = userService.getUserByUuid(userUuid);
        boolean awaitingActivation = isAccountRequiresActivation(userUuid);
        if (awaitingActivation) {
            activateAccount(user.getUuid());
        } else {
            throw new GenericException(SecurityMessageCodes.ALREADY_ACTIVATED);
        }
        if (registrationActivatedHandler != null) {
            registrationActivatedHandler.onRegistrationActivated(user);
        }
    } catch (Throwable e) {
        log.error("Failed to activate registration", e);
        throw new GenericException(SecurityMessageCodes.FAILED_TO_ACTIVATE_REGISTRATION, e);
    }
}
Also used : User(org.summerb.users.api.dto.User) GenericException(org.summerb.utils.exceptions.GenericException) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

User (org.summerb.users.api.dto.User)61 Test (org.junit.Test)33 UserNotFoundException (org.summerb.users.api.exceptions.UserNotFoundException)13 AuthToken (org.summerb.users.api.dto.AuthToken)11 UserServiceUnexpectedException (org.summerb.users.api.exceptions.UserServiceUnexpectedException)11 FieldValidationException (org.summerb.validation.FieldValidationException)11 Transactional (org.springframework.transaction.annotation.Transactional)8 Date (java.util.Date)4 PagerParams (org.summerb.easycrud.api.dto.PagerParams)4 DuplicateKeyException (org.springframework.dao.DuplicateKeyException)3 InvalidPasswordException (org.summerb.users.api.exceptions.InvalidPasswordException)3 UsernamePasswordAuthenticationToken (org.springframework.security.authentication.UsernamePasswordAuthenticationToken)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 GenericException (org.summerb.utils.exceptions.GenericException)2 ValidationContext (org.summerb.validation.ValidationContext)2 CacheBuilder (com.google.common.cache.CacheBuilder)1 EventBus (com.google.common.eventbus.EventBus)1 Locale (java.util.Locale)1 Secured (org.springframework.security.access.annotation.Secured)1 AuthenticationServiceException (org.springframework.security.authentication.AuthenticationServiceException)1