Hi Alejandro, of course.
Download the vaadin bakery starter project https://vaadin.com/start/latest/full-stack-spring
Add the following dependencies to the pom.xml to use spring sessions:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
And finally configure the application.properties with these lines:
spring.session.store-type=redis
spring.redis.host= #my redis server ip
spring.redis.port=6379
When I login, the main page of the application is continuously refreshing giving me the following lines in the browser console:
Navega a http://localhost:8080/login
Setting heartbeat interval to 300sec. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Scheduling heartbeat in 300 seconds client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:196:18
Starting application ROOT-2521314 client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Vaadin application servlet version: 1.0.5 client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Handling message from server client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:976:565
Handling dependencies client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:923:37
StateTree after applying changes: client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:941:114
Object { pushConfiguration: {…}, elementData: {…}, clientDelegateHandlers: [], polymerServerEventHandlers: []
, synchronizedPropertyEvents: [], virtualChildrenList: []
, elementChildren: (1) […]
, classList: [] }
client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
handleUIDLMessage: 16 ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
First response processed 2886 ms after fetchStart client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Processing time was 503ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Sending xhr message to server: {"csrfToken":"e93f7e75-ef36-471a-99c6-4f6fa2cc7a82","rpc":[{"type":"event","node":41,"event":"opened-changed"},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"setDetailsVisible","templateEventMethodArgs":[null]
},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"sortersChanged","templateEventMethodArgs":[[]
]},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"confirmUpdate","templateEventMethodArgs":[0]
}],"syncId":0,"clientId":0} client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Server visit took 309ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
JSON parsing took 0ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Received xhr message: for(;;);[{"meta":{"sessionExpired":true}}]
client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Response didn't contain a server id. Please verify that the server is up-to-date and that the response data has not been modified in transmission. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:961:114
Handling message from server client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:976:565
Handling dependencies client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:923:37
handleUIDLMessage: 0 ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Navega a http://localhost:8080/
Setting heartbeat interval to -1sec. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Disabling heartbeat client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:815:99
Processing time was 5ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Setting heartbeat interval to 300sec. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Scheduling heartbeat in 300 seconds client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:196:18
Starting application ROOT-2521314 client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Vaadin application servlet version: 1.0.5 client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Handling message from server client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:976:565
Handling dependencies client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:923:37
StateTree after applying changes: client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:941:114
Object { pushConfiguration: {…}, elementData: {…}, clientDelegateHandlers: [], polymerServerEventHandlers: []
, synchronizedPropertyEvents: [], virtualChildrenList: []
, elementChildren: (1) […]
, classList: [] }
client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
handleUIDLMessage: 16 ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
First response processed 2766 ms after fetchStart client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Processing time was 512ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Sending xhr message to server: {"csrfToken":"e93f7e75-ef36-471a-99c6-4f6fa2cc7a82","rpc":[{"type":"event","node":41,"event":"opened-changed"},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"setDetailsVisible","templateEventMethodArgs":[null]
},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"sortersChanged","templateEventMethodArgs":[[]
]},{"type":"publishedEventHandler","node":33,"templateEventMethodName":"confirmUpdate","templateEventMethodArgs":[0]
}],"syncId":0,"clientId":0} client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Server visit took 307ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
JSON parsing took 0ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Received xhr message: for(;;);[{"meta":{"sessionExpired":true}}]
client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Response didn't contain a server id. Please verify that the server is up-to-date and that the response data has not been modified in transmission. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:961:114
Handling message from server client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:976:565
Handling dependencies client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:923:37
handleUIDLMessage: 0 ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Navega a http://localhost:8080/
Setting heartbeat interval to -1sec. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Disabling heartbeat client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:815:99
Processing time was 4ms client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
Setting heartbeat interval to 300sec. client-D1AD34905AC1AA5B4DBECA8FB0306D92.cache.js:182:18
The session apparently is working, because when i restart my embedded Tomcat, the login page doesn’t appear and I can see in my redis-cli the logged user.