@Override public void deleteExpiredTokens() { deleteExpiredAccessTokensInMemory(); deleteExpiredRefreshTokensInMemory(); if (serverConfig.getRestStoreTokensInDb() && clusterManagerAPI.isMaster()) { deleteExpiredAccessTokensInDatabase(); deleteExpiredRefreshTokensInDatabase(); } }
@Override public byte[] getAccessTokenByAuthentication(String authenticationKey) { byte[] accessTokenBytes; accessTokenBytes = getAccessTokenByAuthenticationFromMemory(authenticationKey); if (accessTokenBytes == null && serverConfig.getRestStoreTokensInDb()) { AccessToken accessToken = getAccessTokenByAuthenticationKeyFromDatabase(authenticationKey); if (accessToken != null) { accessTokenBytes = accessToken.getTokenBytes(); restoreAccessTokenIntoMemory(accessToken); } } return accessTokenBytes; }
@Override public byte[] getAuthenticationByTokenValue(String tokenValue) { byte[] authenticationBytes; authenticationBytes = getAuthenticationByTokenValueFromMemory(tokenValue); if (authenticationBytes == null && serverConfig.getRestStoreTokensInDb()) { AccessToken accessToken = getAccessTokenByTokenValueFromDatabase(tokenValue); if (accessToken != null) { authenticationBytes = accessToken.getAuthenticationBytes(); restoreAccessTokenIntoMemory(accessToken); } } return authenticationBytes; }
@Override public void removeAccessTokenUsingRefreshToken(String refreshTokenValue) { String accessTokenValue = getAccessTokenValueByRefreshTokenValue(refreshTokenValue); if (accessTokenValue != null) removeAccessToken(accessTokenValue); }
@Override public byte[] getAccessTokenByTokenValue(String accessTokenValue) { byte[] accessTokenBytes; accessTokenBytes = getAccessTokenByTokenValueFromMemory(accessTokenValue); if (accessTokenBytes == null && serverConfig.getRestStoreTokensInDb()) { AccessToken accessToken = getAccessTokenByTokenValueFromDatabase(accessTokenValue); if (accessToken != null) { accessTokenBytes = accessToken.getTokenBytes(); restoreAccessTokenIntoMemory(accessToken); } } return accessTokenBytes; }
@Override public void receive(TokenStorePutSessionInfoMsg message) { _putSessionInfo(message.getTokenValue(), message.getSessionInfo()); } });
@Override public RestUserSessionInfo getSessionInfoByTokenValue(String tokenValue) { RestUserSessionInfo sessionInfo = accessTokenValueToSessionInfoStore.get(tokenValue); if (sessionInfo == null && serverConfig.getRestStoreTokensInDb()) { AccessToken accessToken = getAccessTokenByTokenValueFromDatabase(tokenValue); if (accessToken != null) { String localeStr = accessToken.getLocale(); if (!Strings.isNullOrEmpty(localeStr)) { Locale locale = LocaleUtils.toLocale(localeStr); return new RestUserSessionInfo(null, locale); } } } return sessionInfo; }
@Override public RestUserSessionInfo putSessionInfo(String tokenValue, RestUserSessionInfo sessionInfo) { RestUserSessionInfo info = _putSessionInfo(tokenValue, sessionInfo); clusterManagerAPI.send(new TokenStorePutSessionInfoMsg(tokenValue, sessionInfo)); return info; }