1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.sra;
20
21 import java.util.List;
22 import org.apache.syncope.sra.session.CacheManagerReactiveSessionRepository;
23 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
24 import org.springframework.cache.CacheManager;
25 import org.springframework.cache.annotation.EnableCaching;
26 import org.springframework.cache.concurrent.ConcurrentMapCache;
27 import org.springframework.cache.support.SimpleCacheManager;
28 import org.springframework.context.annotation.Bean;
29 import org.springframework.context.annotation.Configuration;
30 import org.springframework.session.MapSession;
31 import org.springframework.session.ReactiveSessionRepository;
32 import org.springframework.session.config.annotation.web.server.EnableSpringWebSession;
33
34 @Configuration(proxyBeanMethods = false)
35 @EnableCaching
36 @EnableSpringWebSession
37 public class SessionConfig {
38
39 public static final String DEFAULT_CACHE = "default";
40
41 @ConditionalOnMissingBean
42 @Bean
43 public ReactiveSessionRepository<MapSession> reactiveSessionRepository() {
44 return new CacheManagerReactiveSessionRepository();
45 }
46
47 @ConditionalOnMissingBean
48 @Bean
49 public CacheManager cacheManager() {
50 SimpleCacheManager cacheManager = new SimpleCacheManager();
51 cacheManager.setCaches(List.of(new ConcurrentMapCache(DEFAULT_CACHE)));
52 return cacheManager;
53 }
54 }