public long getTokenAgeInDays() { long diffInMilliseconds = System.currentTimeMillis() - getTimeCreated().getTime(); return (diffInMilliseconds / (1000 * 60 * 60 * 24)); } }
protected TokenStatus checkUserToken(String userName, String serverName, String token, long tokenLifeTimeInDays) { if (token == null) { return TokenStatus.INVALID; } LocalLoginToken storedToken = this.storageManager.getLocalLoginToken(userName, serverName); if (storedToken == null) { return TokenStatus.INVALID; } // this.logger.debug("Expected token for user [{}]: [{}] aged [{}] out of [{}]", // userName, storedToken.getLoginToken(), storedToken.getTokenAgeInDays(), tokenLifeTimeInDays); if (!token.equals(storedToken.getLoginToken())) { this.logger.warn("Stored token does not match provided token"); return TokenStatus.INVALID; } if (tokenLifeTimeInDays != 0 && (storedToken.getTokenAgeInDays() > tokenLifeTimeInDays)) { this.logger.warn("Stored token has expired"); return TokenStatus.EXPIRED; } return TokenStatus.VALID; }
@Override public void storeLocalLoginToken(String userName, String sourceServerName, String loginToken) { LocalLoginToken existing = getLocalLoginToken(userName, sourceServerName); Session session = this.sessionFactory.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); try { t.begin(); if (existing != null) { this.logger.info("Updating token for [{}@{}]", userName, sourceServerName); existing.setLoginToken(loginToken); session.update(existing); } else { this.logger.info("Saving new token for [{}@{}]", userName, sourceServerName); session.save(new LocalLoginToken(userName, sourceServerName, loginToken)); } t.commit(); } catch (HibernateException ex) { this.logger.error("Error storing local login token for [{}@{}]: [{}]", userName, sourceServerName, ex); if (t != null) { t.rollback(); } } finally { session.close(); } }
protected TokenStatus checkUserToken(String userName, String serverName, String token, long tokenLifeTimeInDays) { if (token == null) { return TokenStatus.INVALID; } LocalLoginToken storedToken = this.storageManager.getLocalLoginToken(userName, serverName); if (storedToken == null) { return TokenStatus.INVALID; } // this.logger.debug("Expected token for user [{}]: [{}] aged [{}] out of [{}]", // userName, storedToken.getLoginToken(), storedToken.getTokenAgeInDays(), tokenLifeTimeInDays); if (!token.equals(storedToken.getLoginToken())) { this.logger.warn("Stored token does not match provided token"); return TokenStatus.INVALID; } if (tokenLifeTimeInDays != 0 && (storedToken.getTokenAgeInDays() > tokenLifeTimeInDays)) { this.logger.warn("Stored token has expired"); return TokenStatus.EXPIRED; } return TokenStatus.VALID; }