From 530637d2de93c264a11b591da458983294672d14 Mon Sep 17 00:00:00 2001 From: Mauro Mugnaini Date: Thu, 18 Jun 2020 12:10:43 +0200 Subject: [PATCH] Added some methods to clear caches --- .../oidc/lr62/IntraVMOIDCTokenCacheProxy.java | 27 +++++++++++++++---- .../portal/oidc/lr62/OIDCTokenCacheProxy.java | 21 ++++++++++----- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/gcube/portal/oidc/lr62/IntraVMOIDCTokenCacheProxy.java b/src/main/java/org/gcube/portal/oidc/lr62/IntraVMOIDCTokenCacheProxy.java index 2c50d06..3f1b643 100644 --- a/src/main/java/org/gcube/portal/oidc/lr62/IntraVMOIDCTokenCacheProxy.java +++ b/src/main/java/org/gcube/portal/oidc/lr62/IntraVMOIDCTokenCacheProxy.java @@ -1,4 +1,4 @@ -package com.nubisware.oidc.lr62; +package org.gcube.portal.oidc.lr62; import java.util.Collections; import java.util.Map; @@ -6,15 +6,16 @@ import java.util.TreeMap; import javax.servlet.http.HttpSession; -import com.liferay.portal.model.User; -import com.nubisware.oidc.rest.JWTToken; +import org.gcube.oidc.rest.JWTToken; -public class IntraVMOIDCTokenProxy extends OIDCTokenProxy { +import com.liferay.portal.model.User; + +public class IntraVMOIDCTokenCacheProxy extends OIDCTokenCacheProxy { private Map oidcTokens; private Map rptTokens; - protected IntraVMOIDCTokenProxy() { + protected IntraVMOIDCTokenCacheProxy() { oidcTokens = Collections.synchronizedMap(new TreeMap<>()); rptTokens = Collections.synchronizedMap(new TreeMap<>()); } @@ -49,4 +50,20 @@ public class IntraVMOIDCTokenProxy extends OIDCTokenProxy { rptTokens.remove(generateKey(user, session)); } + @Override + public void clearOIDCTokens() { + oidcTokens.clear(); + } + + @Override + public void clearUMATokens() { + rptTokens.clear(); + } + + @Override + public void clearAllTokens() { + clearOIDCTokens(); + clearUMATokens(); + } + } diff --git a/src/main/java/org/gcube/portal/oidc/lr62/OIDCTokenCacheProxy.java b/src/main/java/org/gcube/portal/oidc/lr62/OIDCTokenCacheProxy.java index f0bebea..d27d4b3 100644 --- a/src/main/java/org/gcube/portal/oidc/lr62/OIDCTokenCacheProxy.java +++ b/src/main/java/org/gcube/portal/oidc/lr62/OIDCTokenCacheProxy.java @@ -1,19 +1,20 @@ -package com.nubisware.oidc.lr62; +package org.gcube.portal.oidc.lr62; import javax.servlet.http.HttpSession; +import org.gcube.oidc.rest.JWTToken; + import com.liferay.portal.model.User; -import com.nubisware.oidc.rest.JWTToken; -public abstract class OIDCTokenProxy { +public abstract class OIDCTokenCacheProxy { - protected static OIDCTokenProxy instance; + protected static OIDCTokenCacheProxy instance; - public OIDCTokenProxy() { + public OIDCTokenCacheProxy() { instance = this; } - public static synchronized OIDCTokenProxy getInstance() { - return instance != null ? instance : new IntraVMOIDCTokenProxy(); + public static synchronized OIDCTokenCacheProxy getInstance() { + return instance != null ? instance : new IntraVMOIDCTokenCacheProxy(); } public abstract void setOIDCToken(User user, HttpSession session, JWTToken token); @@ -28,6 +29,12 @@ public abstract class OIDCTokenProxy { public abstract void removeUMAToken(User user, HttpSession session); + public abstract void clearOIDCTokens(); + + public abstract void clearUMATokens(); + + public abstract void clearAllTokens(); + protected String generateKey(User user, HttpSession session) { return user.getScreenName() + "@" + session.getId(); }