/** * Stores token in cache. * @param token Token to be stored * @see CachedRememberMeTokenInfo */ private void cacheToken(PersistentRememberMeToken token) { if (tokenCache.size() >= TOKEN_CACHE_MAX_SIZE) { validateTokenCache(); } CachedRememberMeTokenInfo tokenWrapper = new CachedRememberMeTokenInfo(token.getTokenValue(), System.currentTimeMillis()); tokenCache.put(token.getSeries(), tokenWrapper); }
@Override public void createNewToken(PersistentRememberMeToken token) { Long sessionId = Long.valueOf(token.getSeries()); Long userId = Long.valueOf(token.getUsername()); sessionService.createSession(sessionId, userId, token.getTokenValue()); }
/** * Sets valid cookie to response * Needed for possibility to test. */ @VisibleForTesting void rewriteCookie(PersistentRememberMeToken token, HttpServletRequest request, HttpServletResponse response) { setCookie(new String[] {token.getSeries(), token.getTokenValue()}, getTokenValiditySeconds(), request, response); }
public SessionToken(PersistentRememberMeToken persistentRememberMeToken){ this.username = persistentRememberMeToken.getUsername(); this.series = persistentRememberMeToken.getSeries(); this.tokenValue = persistentRememberMeToken.getTokenValue(); this.date = persistentRememberMeToken.getDate(); }
public SessionToken(PersistentRememberMeToken persistentRememberMeToken) { this.username = persistentRememberMeToken.getUsername(); this.series = persistentRememberMeToken.getSeries(); this.tokenValue = persistentRememberMeToken.getTokenValue(); this.date = persistentRememberMeToken.getDate(); }
public MongoRememberMeToken(final PersistentRememberMeToken persistentRememberMeToken) { this(persistentRememberMeToken.getUsername(), persistentRememberMeToken.getSeries(), persistentRememberMeToken.getTokenValue(), persistentRememberMeToken.getDate(), null); }
public void createNewToken(PersistentRememberMeToken token) { getJdbcTemplate().update(insertTokenSql, token.getUsername(), token.getSeries(), token.getTokenValue(), token.getDate()); }
public RememberMeToken(PersistentRememberMeToken token){ this.series = token.getSeries(); this.username = token.getUsername(); this.tokenValue = token.getTokenValue(); this.date = token.getDate(); }
private void addCookie(PersistentRememberMeToken token, HttpServletRequest request, HttpServletResponse response) { setCookie(new String[] { token.getSeries(), token.getTokenValue() }, getTokenValiditySeconds(), request, response); }
/** * The method provides the functionality to update the token with a new username. The token * will be identified with the old username and upon found, the username will be updated to the * new provided username value * @param oldUsername The old username. It is used to identify the token * @param newUsername The new username. It will replace the old username */ public synchronized void updateToken(String oldUsername, String newUsername) { final List<PersistentRememberMeToken> tokens = new LinkedList<PersistentRememberMeToken>(); for(PersistentRememberMeToken token : seriesTokens.values()){ if(token.getUsername().equalsIgnoreCase(oldUsername)){ PersistentRememberMeToken newToken = new PersistentRememberMeToken(newUsername, token.getSeries(), token.getTokenValue(), token.getDate()); tokens.add(newToken); } } for(PersistentRememberMeToken token : tokens){ seriesTokens.put(token.getSeries(), token); } saveTokens(); }
persistentLogin.setUsername(token.getUsername()); persistentLogin.setSeries(token.getSeries()); persistentLogin.setToken(token.getTokenValue()); persistentLogin.setLast_used(token.getDate()); persist(persistentLogin);
persistentLogin.setUsername(token.getUsername()); persistentLogin.setSeries(token.getSeries()); persistentLogin.setToken(token.getTokenValue()); persistentLogin.setLast_used(token.getDate()); persist(persistentLogin);
/** * Find and check found persistent remember me token with presented token * from cookie. * * @param presentedSeries presented series from cookie * @param presentedToken presented token from cookie * @return {@code true} if token not exists in database or presented token equals to persistent token, * {@code false} if token exists in database and it doesn't equals to presented token */ public boolean equalWithPersistentToken(String presentedSeries, String presentedToken) { PersistentRememberMeToken token = persistentTokenRepository.getTokenForSeries(presentedSeries); if (token != null) { String persistentToken = token.getTokenValue(); if (!ObjectUtils.equals(presentedToken, persistentToken)) { String logErrorMessage = composeErrorMessageForNotEqualTokens( token.getUsername(), presentedToken, presentedSeries, persistentToken); LOGGER.error(logErrorMessage); return false; } } return true; }
@Test public void testUpdateBySeries() { String series = "someSeries"; PersistentRememberMeToken rememberMeToken = new PersistentRememberMeToken("abdullah", series, "oldToken", new Date()); sessionTokenRepository.createNewToken(rememberMeToken); sessionTokenRepository.updateToken(series, "newToken", Date.from(Instant.parse("2010-01-01T10:00:00z"))); PersistentRememberMeToken tokenFromDb = sessionTokenRepository.getTokenForSeries(series); assertThat(tokenFromDb.getTokenValue()).isEqualTo("newToken"); // Note, the `lastUsed` parameter to updateToken is ignored, and a `new Date()` // object is used instead, to be fully compliant with current file-based implementation. assertThat(tokenFromDb.getDate()).isEqualToIgnoringMinutes(new Date()); }
@Modifying @Transactional default void createNewToken(PersistentRememberMeToken token) { PersistentLogins logins = new PersistentLogins(); logins.setLastUsed(token.getDate()); logins.setSeries(token.getSeries()); logins.setToken(token.getTokenValue()); logins.setUsername(token.getUsername()); this.save(logins); }
if (!presentedToken.equals(token.getTokenValue())) { tokenRepository.updateToken(newToken.getSeries(), newToken.getTokenValue(), newToken.getDate()); addCookie(newToken, request, response);