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.Collections;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.TreeMap;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
|
2020-06-18 12:10:43 +02:00
|
|
|
import org.gcube.oidc.rest.JWTToken;
|
|
|
|
|
2020-05-29 13:04:55 +02:00
|
|
|
import com.liferay.portal.model.User;
|
|
|
|
|
2020-06-18 12:10:43 +02:00
|
|
|
public class IntraVMOIDCTokenCacheProxy extends OIDCTokenCacheProxy {
|
2020-05-29 13:04:55 +02:00
|
|
|
|
|
|
|
private Map<String, String> oidcTokens;
|
|
|
|
private Map<String, String> rptTokens;
|
|
|
|
|
2020-06-18 12:10:43 +02:00
|
|
|
protected IntraVMOIDCTokenCacheProxy() {
|
2020-05-29 13:04:55 +02:00
|
|
|
oidcTokens = Collections.synchronizedMap(new TreeMap<>());
|
|
|
|
rptTokens = Collections.synchronizedMap(new TreeMap<>());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setOIDCToken(User user, HttpSession session, JWTToken token) {
|
|
|
|
oidcTokens.put(generateKey(user, session), JWTTokenUtil.getRawContent(token));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void setRPTToken(User user, HttpSession session, JWTToken token) {
|
|
|
|
rptTokens.put(generateKey(user, session), JWTTokenUtil.getRawContent(token));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public JWTToken getOIDCToken(User user, HttpSession session) {
|
|
|
|
return JWTTokenUtil.fromString(oidcTokens.get(generateKey(user, session)));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public JWTToken getUMAToken(User user, HttpSession session) {
|
|
|
|
return JWTTokenUtil.fromString(rptTokens.get(generateKey(user, session)));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void removeOIDCToken(User user, HttpSession session) {
|
|
|
|
oidcTokens.remove(generateKey(user, session));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void removeUMAToken(User user, HttpSession session) {
|
|
|
|
rptTokens.remove(generateKey(user, session));
|
|
|
|
}
|
|
|
|
|
2020-06-18 12:10:43 +02:00
|
|
|
@Override
|
|
|
|
public void clearOIDCTokens() {
|
|
|
|
oidcTokens.clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void clearUMATokens() {
|
|
|
|
rptTokens.clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void clearAllTokens() {
|
|
|
|
clearOIDCTokens();
|
|
|
|
clearUMATokens();
|
|
|
|
}
|
|
|
|
|
2020-05-29 13:04:55 +02:00
|
|
|
}
|