Skip to content

Commit c3910d2

Browse files
committed
Looks like skipping session update is working!
1 parent b3c588f commit c3910d2

File tree

6 files changed

+1041
-3
lines changed

6 files changed

+1041
-3
lines changed

orcid-web/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@
127127
<dependency>
128128
<groupId>org.springframework.session</groupId>
129129
<artifactId>spring-session-core</artifactId>
130-
<version>2.6.4</version>
130+
<version>2.7.4</version>
131131
</dependency>
132132
<dependency>
133133
<groupId>org.springframework.session</groupId>
134134
<artifactId>spring-session-data-redis</artifactId>
135-
<version>2.6.4</version>
135+
<version>2.7.4</version>
136136
</dependency>
137137

138138
<dependency>

orcid-web/src/main/java/org/orcid/frontend/spring/configuration/SessionCacheConfig.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.orcid.frontend.spring.configuration;
22

33
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
4+
import org.orcid.frontend.spring.session.redis.OrcidEnableRedisHttpSession;
45
import org.springframework.beans.factory.annotation.Value;
56
import org.springframework.context.annotation.Bean;
67
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.data.redis.connection.RedisConnectionFactory;
79
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
810
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
911
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
@@ -13,6 +15,7 @@
1315
import org.springframework.session.FlushMode;
1416
import org.springframework.session.SaveMode;
1517
import org.springframework.session.SessionRepository;
18+
import org.springframework.session.config.annotation.web.http.EnableSpringHttpSession;
1619
import org.springframework.session.data.redis.RedisSessionRepository;
1720
import org.springframework.session.data.redis.config.ConfigureRedisAction;
1821
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
@@ -25,7 +28,10 @@
2528
import java.time.Duration;
2629

2730
@Configuration
28-
@EnableRedisHttpSession
31+
//TODO: Trying to make a custom Redis http session configuration to filter the number of times we commit the transaction
32+
//Remove this comment once it is working!
33+
//@EnableRedisHttpSession
34+
@OrcidEnableRedisHttpSession
2935
public class SessionCacheConfig extends AbstractHttpSessionApplicationInitializer {
3036

3137
@Value("${org.orcid.core.utils.cache.redis.pool.idle.max:30}")
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.orcid.frontend.spring.session.redis;
2+
3+
import org.springframework.context.annotation.Configuration;
4+
import org.springframework.context.annotation.Import;
5+
import org.springframework.session.FlushMode;
6+
import org.springframework.session.SaveMode;
7+
import org.springframework.session.data.redis.RedisFlushMode;
8+
import org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration;
9+
10+
import java.lang.annotation.*;
11+
12+
@Retention(RetentionPolicy.RUNTIME)
13+
@Target({ElementType.TYPE})
14+
@Documented
15+
@Import({OrcidRedisHttpSessionConfiguration.class})
16+
@Configuration(
17+
proxyBeanMethods = false
18+
)
19+
public @interface OrcidEnableRedisHttpSession {
20+
int maxInactiveIntervalInSeconds() default 1800;
21+
22+
String redisNamespace() default "spring:session";
23+
24+
/** @deprecated */
25+
@Deprecated
26+
RedisFlushMode redisFlushMode() default RedisFlushMode.ON_SAVE;
27+
28+
FlushMode flushMode() default FlushMode.ON_SAVE;
29+
30+
String cleanupCron() default "0 * * * * *";
31+
32+
SaveMode saveMode() default SaveMode.ON_SET_ATTRIBUTE;
33+
}

0 commit comments

Comments
 (0)