29
29
import java .time .Instant ;
30
30
import java .util .*;
31
31
32
+ /**
33
+ * This code is an adaptation from the original Spring Session Data Redis (https://spring.io/projects/spring-session,
34
+ * source code https://github.com/spring-projects/spring-session/tree/main/spring-session-data-redis)
35
+ * And has been modified to meet ORCID requirements.
36
+ *
37
+ * Licensed under the Apache License, Version 2.0 (the "License");
38
+ * you may not use this file except in compliance with the License.
39
+ * You may obtain a copy of the License at
40
+ *
41
+ * https://www.apache.org/licenses/LICENSE-2.0
42
+ * */
32
43
public class OrcidRedisIndexedSessionRepository implements FindByIndexNameSessionRepository <OrcidRedisIndexedSessionRepository .RedisSession >, MessageListener {
33
44
private static final Log logger = LogFactory .getLog (OrcidRedisIndexedSessionRepository .class );
34
45
private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT" ;
@@ -127,13 +138,10 @@ public RedisOperations<Object, Object> getSessionRedisOperations() {
127
138
}
128
139
129
140
public void save (OrcidRedisIndexedSessionRepository .RedisSession session ) {
130
- // TODO: REMOVE ALL THIS BEFORE GOING LIVE!!!
131
141
ServletRequestAttributes att = (ServletRequestAttributes ) RequestContextHolder .getRequestAttributes ();
132
142
HttpServletRequest request = att .getRequest ();
133
- ///////////////////////////////////////////////
134
143
135
144
if (updateSession ()) {
136
- //TODO: REMOVE THIS LOG ENTRY BEFORE GOING LIVE!!!!
137
145
logger .debug ("Saving session for " + request .getRequestURI () + " - " + request .getMethod ());
138
146
session .save ();
139
147
if (session .isNew ) {
@@ -142,8 +150,7 @@ public void save(OrcidRedisIndexedSessionRepository.RedisSession session) {
142
150
session .isNew = false ;
143
151
}
144
152
} else {
145
- //TODO: REMOVE THIS LOG ENTRY BEFORE GOING LIVE!!!!
146
- logger .debug ("Skip save session id " + request .getRequestURI () + " - " + request .getMethod ());
153
+ logger .trace ("Skip save session id " + request .getRequestURI () + " - " + request .getMethod ());
147
154
}
148
155
}
149
156
@@ -204,17 +211,13 @@ private MapSession loadSession(String id, Map<Object, Object> entries) {
204
211
} else if ("maxInactiveInterval" .equals (key )) {
205
212
loaded .setMaxInactiveInterval (Duration .ofSeconds ((long )(Integer )entry .getValue ()));
206
213
} else if ("lastAccessedTime" .equals (key )) {
207
- // TODO: REMOVE ALL THIS BEFORE GOING LIVE!!!
208
214
ServletRequestAttributes att = (ServletRequestAttributes )RequestContextHolder .getRequestAttributes ();
209
215
HttpServletRequest request = att .getRequest ();
210
- ///////////////////////////////////////////////
211
216
if (updateSession ()) {
212
- // TODO: REMOVE THIS LOG ENTRY BEFORE GOING LIVE!!!
213
217
logger .debug ("Updating last accessed time for " + request .getRequestURI () + " - " + request .getMethod ());
214
218
loaded .setLastAccessedTime (Instant .ofEpochMilli ((Long ) entry .getValue ()));
215
219
} else {
216
- // TODO: REMOVE THIS LOG ENTRY BEFORE GOING LIVE!!!
217
- logger .debug ("Ignoring last accessed time for " + request .getRequestURI () + " - " + request .getMethod ());
220
+ logger .trace ("Ignoring last accessed time for " + request .getRequestURI () + " - " + request .getMethod ());
218
221
}
219
222
} else if (key .startsWith ("sessionAttr:" )) {
220
223
loaded .setAttribute (key .substring ("sessionAttr:" .length ()), entry .getValue ());
@@ -417,15 +420,16 @@ final class RedisSession implements Session {
417
420
418
421
public void setLastAccessedTime (Instant lastAccessedTime ) {
419
422
if (updateSession ()) {
420
- // TODO: REMOVE THIS BEFORE GOING LIVE!!!!
421
423
ServletRequestAttributes att = (ServletRequestAttributes )RequestContextHolder .getRequestAttributes ();
422
424
HttpServletRequest request = att .getRequest ();
423
- logger .debug ("REDIS_SESSION: setLastAccessedTime: " + request .getRequestURI ().toString () + " - " + request .getMethod ());
424
- ///////////////////////////////////////////
425
-
425
+ logger .debug ("Set last accessed time for REDIS_SESSION: " + request .getRequestURI ().toString () + " - " + request .getMethod ());
426
426
this .cached .setLastAccessedTime (lastAccessedTime );
427
427
this .delta .put ("lastAccessedTime" , this .getLastAccessedTime ().toEpochMilli ());
428
428
this .flushImmediateIfNecessary ();
429
+ } else {
430
+ ServletRequestAttributes att = (ServletRequestAttributes )RequestContextHolder .getRequestAttributes ();
431
+ HttpServletRequest request = att .getRequest ();
432
+ logger .trace ("Set last accessed time for REDIS_SESSION: " + request .getRequestURI ().toString () + " - " + request .getMethod ());
429
433
}
430
434
}
431
435
0 commit comments