Chapter 2. Externalizing sessions with Spring Session Store session data for Spring applications in Data Grid caches and independently of the container. 2.1. Externalizing Sessions with Spring Session Use the Spring Session API to externalize session data to Data Grid. Procedure Add dependencies to your pom.xml . Embedded caches: infinispan-spring6-embedded Remote caches: infinispan-spring6-remote The following example is for remote caches: <dependencies> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core</artifactId> </dependency> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-spring6-remote</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>USD{version.spring}</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-core</artifactId> <version>USD{version.spring}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>USD{version.spring}</version> </dependency> </dependencies> Specify the appropriate FactoryBean to expose a CacheManager instance. Embedded caches: SpringEmbeddedCacheManagerFactoryBean Remote caches: SpringRemoteCacheManagerFactoryBean Enable Spring Session with the appropriate annotation. Embedded caches: @EnableInfinispanEmbeddedHttpSession Remote caches: @EnableInfinispanRemoteHttpSession These annotations have optional parameters: maxInactiveIntervalInSeconds sets session expiration time in seconds. The default is 1800 . cacheName specifies the name of the cache that stores sessions. The default is sessions . The following example shows a complete, annotation-based configuration: @EnableInfinispanEmbeddedHttpSession @Configuration public class Config { @Bean public SpringEmbeddedCacheManagerFactoryBean springCacheManager() { return new SpringEmbeddedCacheManagerFactoryBean(); } //An optional configuration bean responsible for replacing the default //cookie that obtains configuration. //For more information refer to the Spring Session documentation. @Bean public HttpSessionIdResolver httpSessionIdResolver() { return HeaderHttpSessionIdResolver.xAuthToken(); } }

Commands:
<dependencies> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core</artifactId> </dependency> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-spring6-remote</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>USD{version.spring}</version> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-core</artifactId> <version>USD{version.spring}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>USD{version.spring}</version> </dependency> </dependencies>
@EnableInfinispanEmbeddedHttpSession @Configuration public class Config { @Bean public SpringEmbeddedCacheManagerFactoryBean springCacheManager() { return new SpringEmbeddedCacheManagerFactoryBean(); } //An optional configuration bean responsible for replacing the default //cookie that obtains configuration. //For more information refer to the Spring Session documentation. @Bean public HttpSessionIdResolver httpSessionIdResolver() { return HeaderHttpSessionIdResolver.xAuthToken(); } }