oidc-library-portal/src/main/java/org/gcube/portal/oidc/lr62/JWTCacheProxy.java

60 lines
1.6 KiB
Java
Raw Normal View History

2020-06-18 12:10:43 +02:00
package org.gcube.portal.oidc.lr62;
2020-05-29 13:04:55 +02:00
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
2020-05-29 13:04:55 +02:00
2020-06-18 12:10:43 +02:00
import org.gcube.oidc.rest.JWTToken;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
2020-05-29 13:04:55 +02:00
import com.liferay.portal.model.User;
public abstract class JWTCacheProxy {
2020-05-29 13:04:55 +02:00
protected static final Log log = LogFactoryUtil.getLog(JWTCacheProxy.class);
protected static JWTCacheProxy instance;
2020-05-29 13:04:55 +02:00
public JWTCacheProxy() {
2020-05-29 13:04:55 +02:00
instance = this;
Timer timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
instance.dumpOnLog();
}
}, 0, 60 * 1000);
2020-05-29 13:04:55 +02:00
}
public static synchronized JWTCacheProxy getInstance() {
return instance != null ? instance : new IntraVMJWTCacheProxy();
2020-05-29 13:04:55 +02:00
}
public abstract void setOIDCToken(User user, String sessionId, JWTToken token);
2020-05-29 13:04:55 +02:00
public abstract void setUMAToken(User user, String sessionId, JWTToken token);
2020-05-29 13:04:55 +02:00
public abstract JWTToken getOIDCToken(User user, String sessionId);
2020-05-29 13:04:55 +02:00
public abstract JWTToken getUMAToken(User user, String sessionId);
2020-05-29 13:04:55 +02:00
public abstract void removeOIDCToken(User user, String sessionId);
2020-05-29 13:04:55 +02:00
public abstract void removeUMAToken(User user, String sessionId);
2020-05-29 13:04:55 +02:00
public abstract void removeAllOIDCTokens(User user);
public abstract void removeAllUMATokens(User user);
2020-06-18 12:10:43 +02:00
public abstract void clearOIDCTokens();
public abstract void clearUMATokens();
public abstract void clearAllTokens();
public abstract Map<String, String> getMutexFor(User user);
public abstract void dumpOnLog();
2020-05-29 13:04:55 +02:00
}