/** * Creates a new limited use authentication token with the specified * lifetime (in ms). * @param subject the Subject to associate with this token when it is consumed * @param lifetime how long each use of the token extends its lifetime * @return auth token */ public String createToken(final Subject subject, final long lifetime) { final byte[] newToken = new byte[TOKEN_SIZE]; rng.nextBytes(newToken); final String token = toHex(newToken); liveTokens.put(token, new TokenInfo(subject, token, lifetime)); logger.log(Level.FINER, "Auth token {0} created", token); return token; }
private synchronized boolean use(final boolean isBeingReused, final long now) { if (isUsedUp(now)) { if (logger.isLoggable(Level.FINER)) { final String msg = localStrings.getLocalString("AuthTokenInvalid", "Use of auth token {2} attempted but token is invalid; usesRemaining = {0,number,integer}, expired = {1}", Integer.valueOf(usesRemaining), Boolean.toString(expiration <= now), token); logger.log(Level.FINER, msg); } return false; } if ( ! isBeingReused) { usesRemaining--; } if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Use of auth token {0} OK; isBeingReused = {2}; remaining uses = {1,number,integer}", new Object[] {token, Integer.valueOf(usesRemaining), Boolean.toString(isBeingReused)}); } expiration += lifetime; return true; }
private synchronized boolean use(final boolean isBeingReused, final long now) { if (isUsedUp(now)) { if (logger.isLoggable(Level.FINER)) { final String msg = localStrings.getLocalString("AuthTokenInvalid", "Use of auth token {2} attempted but token is invalid; usesRemaining = {0,number,integer}, expired = {1}", Integer.valueOf(usesRemaining), Boolean.toString(expiration <= now), token); logger.log(Level.FINER, msg); } return false; } if ( ! isBeingReused) { usesRemaining--; } if (logger.isLoggable(Level.FINER)) { logger.log(Level.FINER, "Use of auth token {0} OK; isBeingReused = {2}; remaining uses = {1,number,integer}", new Object[] {token, Integer.valueOf(usesRemaining), Boolean.toString(isBeingReused)}); } expiration += lifetime; return true; }
private synchronized boolean use(final boolean isBeingReused, final long now) { if (isUsedUp(now)) { final String msg = localStrings.getLocalString("AuthTokenInvalid", "Use of auth token {2} attempted but token is invalid; usesRemaining = {0,number,integer}, expired = {1}", new Integer(usesRemaining), Boolean.toString(expiration <= now), logger.isLoggable(Level.FINER) ? token : SUPPRESSED_TOKEN_OUTPUT); return false; } if ( ! isBeingReused) { usesRemaining--; } logger.log(Level.FINER, "Use of auth token {0} OK; isBeingReused = {2}; remaining uses = {1,number,integer}", new Object[] {token, new Integer(usesRemaining), Boolean.toString(isBeingReused)}); expiration += (TOKEN_EXPIRATION_IN_MS); return true; }
/** * Creates a new limited use authentication token with the specified * lifetime (in ms). * @param subject the Subject to associate with this token when it is consumed * @param lifetime how long each use of the token extends its lifetime * @return auth token */ public String createToken(final Subject subject, final long lifetime) { final byte[] newToken = new byte[TOKEN_SIZE]; rng.nextBytes(newToken); final String token = toHex(newToken); liveTokens.put(token, new TokenInfo(subject, token, lifetime)); logger.log(Level.FINER, "Auth token {0} created", token); return token; }
private synchronized boolean isOKTouse(final long now) { return ! isUsedUp(now); }
private synchronized boolean isOKTouse(final long now) { return ! isUsedUp(now); }
/** * Creates a new limited use authentication token. * @return auth token */ public String createToken() { final byte[] newToken = new byte[TOKEN_SIZE]; rng.nextBytes(newToken); final String token = toHex(newToken); liveTokens.put(token, new TokenInfo(token)); logger.log(Level.FINER, "Auth token {0} created", token); return token; }