package eu.eudat.interceptors; import eu.eudat.convention.ConventionService; import gr.cite.tools.cache.CacheService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.UUID; @Service public class UserInterceptorCacheService extends CacheService { public static class UserInterceptorCacheValue { public UserInterceptorCacheValue() { } public UserInterceptorCacheValue(String subjectId, UUID userId) { this.subjectId = subjectId; this.userId = userId; } public String getSubjectId() { return subjectId; } public void setSubjectId(String subjectId) { this.subjectId = subjectId; } private String subjectId; private UUID userId; private List roles; private String providerEmail; private List externalProviderNames; public UUID getUserId() { return userId; } public void setUserId(UUID userId) { this.userId = userId; } public List getRoles() { return roles; } public void setRoles(List roles) { this.roles = roles; } public String getProviderEmail() { return providerEmail; } public void setProviderEmail(String providerEmail) { this.providerEmail = providerEmail; } public List getExternalProviderNames() { return externalProviderNames; } public void setExternalProviderNames(List externalProviderNames) { this.externalProviderNames = externalProviderNames; } } @Autowired public UserInterceptorCacheService(UserInterceptorCacheOptions options, ConventionService conventionService) { super(options); } @Override protected Class valueClass() { return UserInterceptorCacheValue.class; } @Override public String keyOf(UserInterceptorCacheValue value) { return this.buildKey(value.getSubjectId()); } public String buildKey(String subject) { HashMap keyParts = new HashMap<>(); keyParts.put("$subject$", subject); return this.generateKey(keyParts); } }