@Override public synchronized void onResourceUpdate(String name, KeyIdentifier instance) { LOG.debug("SharedResourceCache triggered update: leader={}, resource key={}", leader, name); if (currentKey == null || instance.getExpiration() > currentKey.getExpiration()) { currentKey = instance; LOG.debug("Set current key: leader={}, key={}", leader, currentKey.getKeyId()); } }
@Override public synchronized void onUpdate() { LOG.debug("SharedResourceCache triggered update on key: leader={}", leader); for (KeyIdentifier keyEntry : keyCache.getResources()) { if (currentKey == null || keyEntry.getExpiration() > currentKey.getExpiration()) { currentKey = keyEntry; LOG.debug("Set current key: leader={}, key={}", leader, currentKey.getKeyId()); } } }
private synchronized void rotateKey() { long now = System.currentTimeMillis(); // create a new secret key generateKey(); // clear out any expired keys for (KeyIdentifier keyIdent : keyCache.getResources()) { // we can only remove keys that expired prior to the oldest non-expired token if (keyIdent.getExpiration() < (now - maxTokenExpiration)) { LOG.debug("Removing expired key: id={}, expiration={}", keyIdent.getKeyId(), keyIdent.getExpiration()); keyCache.remove(Integer.toString(keyIdent.getKeyId())); } } lastKeyUpdate = now; }