v0.2.48..v0.2.49 changeset UserManagerImpl.java
Garret Voltz edited this page Oct 2, 2019
·
1 revision
diff --git a/hoot-services/src/main/java/hoot/services/controllers/auth/UserManagerImpl.java b/hoot-services/src/main/java/hoot/services/controllers/auth/UserManagerImpl.java
index f10bd49..a7aa903 100644
--- a/hoot-services/src/main/java/hoot/services/controllers/auth/UserManagerImpl.java
+++ b/hoot-services/src/main/java/hoot/services/controllers/auth/UserManagerImpl.java
@@ -26,8 +26,8 @@
*/
package hoot.services.controllers.auth;
-import static hoot.services.models.db.QUsers.users;
import static hoot.services.models.db.QSpringSession.springsessions;
+import static hoot.services.models.db.QUsers.users;
import static hoot.services.utils.DbUtils.createQuery;
import java.io.IOException;
@@ -35,6 +35,7 @@ import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
import java.util.TimeZone;
import java.util.concurrent.ConcurrentHashMap;
@@ -54,7 +55,6 @@ import org.xml.sax.SAXException;
import hoot.services.models.db.SpringSession;
import hoot.services.models.db.Users;
-import hoot.services.utils.DbUtils;
import hoot.services.utils.XmlDocumentBuilder;
@Component
@@ -155,6 +155,15 @@ public class UserManagerImpl implements UserManager {
}
}
+ private List<String> getUserSessionId(Long userId) {
+ List<String> sess = createQuery()
+ .select(springsessions.session_id)
+ .from(springsessions)
+ .where(springsessions.user_id.eq(userId))
+ .fetch();
+ return sess;
+ }
+
@Override
public Users upsert(String xml, OAuthConsumerToken accessToken, String sessionId) throws SAXException, IOException, ParserConfigurationException, InvalidUserProfileException {
Users user = this.parseUser(xml);
@@ -174,4 +183,8 @@ public class UserManagerImpl implements UserManager {
userCache.put(sessionId, user);
return user;
}
+
+ public void clearCachedUser(Long userId) {
+ getUserSessionId(userId).forEach(id -> userCache.remove(id));
+ }
}