in src/main/java/org/apache/sling/auth/saml2/impl/TokenStore.java [263:283]
synchronized int getActiveToken() {
if (System.currentTimeMillis() > nextUpdate
|| currentTokens[currentToken] == null) {
// cycle so that during a typical ttl the tokens get completely
// refreshed.
nextUpdate = System.currentTimeMillis() + ttl
/ (currentTokens.length - 1);
byte[] b = new byte[20];
random.nextBytes(b);
SecretKey newToken = new SecretKeySpec(b, ALGORITHM);
int nextToken = currentToken + 1;
if (nextToken == currentTokens.length) {
nextToken = 0;
}
currentTokens[nextToken] = newToken;
currentToken = nextToken;
saveTokens();
}
return currentToken;
}