Search in sources :

Example 11 with PersistentLogin

use of org.craftercms.profile.api.PersistentLogin in project profile by craftercms.

the class RememberMeManagerImpl method enableRememberMe.

@Override
public void enableRememberMe(Authentication authentication, RequestContext context) throws RememberMeException {
    String profileId = authentication.getProfile().getId().toString();
    PersistentLogin login;
    try {
        login = authenticationService.createPersistentLogin(profileId);
    } catch (ProfileException e) {
        throw new RememberMeException("Error creating persistent login for profile '" + profileId + "'", e);
    }
    logger.debug("Persistent login created: {}", login);
    addRememberMeCookie(serializeLogin(login), context.getResponse());
}
Also used : ProfileException(org.craftercms.profile.api.exceptions.ProfileException) PersistentLogin(org.craftercms.profile.api.PersistentLogin) RememberMeException(org.craftercms.security.exception.rememberme.RememberMeException)

Example 12 with PersistentLogin

use of org.craftercms.profile.api.PersistentLogin in project engine by craftercms.

the class ProfileRememberMeServices method onLoginSuccess.

@Override
protected void onLoginSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication successfulAuthentication) {
    ProfileUser profileUser = (ProfileUser) successfulAuthentication.getPrincipal();
    try {
        PersistentLogin persistentLogin = authenticationService.createPersistentLogin(profileUser.getProfile().getId().toHexString());
        setCookie(new String[] { persistentLogin.getId(), persistentLogin.getToken() }, getTokenValiditySeconds(), request, response);
    } catch (ProfileException e) {
        throw new RememberMeAuthenticationException("Error creating persistent login for " + profileUser.getUsername(), e);
    }
}
Also used : RememberMeAuthenticationException(org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationException) ProfileException(org.craftercms.profile.api.exceptions.ProfileException) PersistentLogin(org.craftercms.profile.api.PersistentLogin)

Example 13 with PersistentLogin

use of org.craftercms.profile.api.PersistentLogin in project profile by craftercms.

the class AuthenticationServiceImpl method refreshPersistentLoginToken.

@Override
public PersistentLogin refreshPersistentLoginToken(String loginId) throws ProfileException {
    PersistentLogin login = getPersistentLogin(loginId);
    if (login != null) {
        try {
            login.setToken(UUID.randomUUID().toString());
            persistentLoginRepository.save(login);
            logger.debug(LOG_KEY_PERSISTENT_LOGIN_TOKEN_REFRESHED, loginId, login.getToken());
            return login;
        } catch (MongoDataException e) {
            throw new I10nProfileException(ERROR_KEY_UPDATE_PERSISTENT_LOGIN_ERROR, loginId);
        }
    } else {
        throw new NoSuchPersistentLoginException(loginId);
    }
}
Also used : I10nProfileException(org.craftercms.profile.api.exceptions.I10nProfileException) NoSuchPersistentLoginException(org.craftercms.profile.exceptions.NoSuchPersistentLoginException) MongoDataException(org.craftercms.commons.mongo.MongoDataException) PersistentLogin(org.craftercms.profile.api.PersistentLogin)

Example 14 with PersistentLogin

use of org.craftercms.profile.api.PersistentLogin in project profile by craftercms.

the class RememberMeManagerImplTest method getLogin2.

protected PersistentLogin getLogin2() {
    PersistentLogin login = new PersistentLogin();
    login.setId(LOGIN_ID);
    login.setToken(LOGIN_TOKEN2);
    login.setProfileId(PROFILE_ID.toString());
    return login;
}
Also used : PersistentLogin(org.craftercms.profile.api.PersistentLogin)

Example 15 with PersistentLogin

use of org.craftercms.profile.api.PersistentLogin in project profile by craftercms.

the class AuthenticationServiceImplTest method testCreatePersistentLogin.

@Test
public void testCreatePersistentLogin() throws Exception {
    PersistentLogin login = authenticationService.createPersistentLogin(PROFILE1_ID.toString());
    assertNotNull(login);
    assertNotNull(login.getId());
    assertEquals(TENANT_NAME, login.getTenant());
    assertEquals(PROFILE1_ID.toString(), login.getProfileId());
    assertNotNull(login.getToken());
    assertNotNull(login.getTimestamp());
    verify(profileService).getProfile(PROFILE1_ID.toString(), ProfileConstants.NO_ATTRIBUTE);
    verify(persistentLoginRepository).insert(login);
}
Also used : PersistentLogin(org.craftercms.profile.api.PersistentLogin) Test(org.junit.Test)

Aggregations

PersistentLogin (org.craftercms.profile.api.PersistentLogin)19 Test (org.junit.Test)7 ProfileException (org.craftercms.profile.api.exceptions.ProfileException)5 RememberMeException (org.craftercms.security.exception.rememberme.RememberMeException)4 MongoDataException (org.craftercms.commons.mongo.MongoDataException)3 I10nProfileException (org.craftercms.profile.api.exceptions.I10nProfileException)3 Date (java.util.Date)2 InvalidCookieException (org.craftercms.security.exception.rememberme.InvalidCookieException)2 RememberMeAuthenticationException (org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationException)2 CryptoException (org.craftercms.commons.crypto.CryptoException)1 Profile (org.craftercms.profile.api.Profile)1 DisabledProfileException (org.craftercms.profile.exceptions.DisabledProfileException)1 NoSuchPersistentLoginException (org.craftercms.profile.exceptions.NoSuchPersistentLoginException)1 Authentication (org.craftercms.security.authentication.Authentication)1 AuthenticationException (org.craftercms.security.exception.AuthenticationException)1 CookieTheftException (org.craftercms.security.exception.rememberme.CookieTheftException)1 CookieTheftException (org.springframework.security.web.authentication.rememberme.CookieTheftException)1 InvalidCookieException (org.springframework.security.web.authentication.rememberme.InvalidCookieException)1