Vedran Pavic
a6f6042831
Introduce IndexResolver
...
This commit introduces IndexResolver as a strategy interface for resolving index values in FindByIndexNameSessionRepository implementations.
Resolves : #557
2019-06-24 12:01:26 +02:00
Vedran Pavic
099be441dd
Fix copyright dates
...
See: #1441
2019-06-21 15:52:26 +02:00
Vedran Pavic
aab9b39a6b
Remove immediate flush mode support for reactive Redis sessions
...
Resolves : #1441
2019-06-20 10:44:22 +02:00
Vedran Pavic
822db7fbbf
Use spring-javaformat to format and check code
...
Resolves : #1450
2019-06-17 23:54:41 +02:00
Vedran Pavic
17005c51a7
Add simple Redis SessionRepository implementation
...
See: #1408
2019-06-14 22:55:21 +02:00
Vedran Pavic
54859070f3
Extract RedisSessionMapper
...
See: #1408
2019-06-14 22:55:11 +02:00
Vedran Pavic
2e91024a56
Fix integration tests
...
See: #1033
2019-06-09 10:54:28 +02:00
Vedran Pavic
a4ff3682f6
Migrate tests to JUnit 5
...
Resolves : #1033
2019-06-06 20:57:45 +02:00
Vedran Pavic
566b388b2f
Align Checkstyle config with Spring Boot
2019-06-03 16:49:08 +02:00
Vedran Pavic
78b72f2d1b
Save reactive Redis session on subscribe
...
This commit ensures ReactiveRedisOperationsSessionRepository#save does work only after subscribe. Without this, multiple invocations of #save over the course of same request can lead to race condition situations.
Resolves : #1399
2019-06-02 19:02:13 +02:00
Vedran Pavic
52f59a83e4
Update integration tests
2019-05-31 23:31:01 +02:00
Rob Winch
d94d58d96b
Redis save uses then
...
We need to ensure that the session id is changed before we save the
changes. Otherwise the rename of the session id will override the
changes we just made.
Fixes: gh-1428
2019-05-16 15:51:51 -05:00
Vedran Pavic
cc41ea5271
Ensure Redis session with immediate flush respects defaultMaxInactiveInterval
...
Resolves : #1409
2019-05-13 19:08:03 +02:00
Vedran Pavic
b98c5216b4
Update configuration classes to use proxyBeanMethods=false
...
Resolves : #1345
2019-05-09 18:10:57 +02:00
Vedran Pavic
856a9b2c51
Update integration tests
2019-04-09 21:24:55 +02:00
Vedran Pavic
094ffe8a60
Avoid conflicts with user provided RedisMessageListenerContainer
...
Resolves : #1252
2019-03-29 21:27:56 +01:00
Spring Operator
a5a3bc5d0b
URL Cleanup
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.
* [ ] http://www.ultraq.net.nz/thymeleaf/layout (302) with 12 occurrences migrated to:
https://github.com/ultraq/thymeleaf-layout-dialect ([https](https://www.ultraq.net.nz/thymeleaf/layout ) result ConnectTimeoutException).
* [ ] http://192.168.1.100:8080/ (AnnotatedConnectException) with 1 occurrences migrated to:
https://192.168.1.100:8080/ ([https](https://192.168.1.100:8080/ ) result ConnectTimeoutException).
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* [ ] http://docs.hazelcast.org/docs/ with 8 occurrences migrated to:
https://docs.hazelcast.org/docs/ ([https](https://docs.hazelcast.org/docs/ ) result 200).
* [ ] http://docs.spring.io/spring-data/data-redis/docs/current/reference/html/ with 1 occurrences migrated to:
https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/ ([https](https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/ ) result 200).
* [ ] http://docs.spring.io/spring-session/docs/current/reference/html5/ with 1 occurrences migrated to:
https://docs.spring.io/spring-session/docs/current/reference/html5/ ([https](https://docs.spring.io/spring-session/docs/current/reference/html5/ ) result 200).
* [ ] http://infinispan.org/docs/dev/user_guide/user_guide.html with 1 occurrences migrated to:
https://infinispan.org/docs/dev/user_guide/user_guide.html ([https](https://infinispan.org/docs/dev/user_guide/user_guide.html ) result 200).
* [ ] http://logback.qos.ch/manual/groovy.html with 1 occurrences migrated to:
https://logback.qos.ch/manual/groovy.html ([https](https://logback.qos.ch/manual/groovy.html ) result 200).
* [ ] http://projects.spring.io/spring-session/ with 1 occurrences migrated to:
https://projects.spring.io/spring-session/ ([https](https://projects.spring.io/spring-session/ ) result 200).
* [ ] http://redis.io/commands/expire with 1 occurrences migrated to:
https://redis.io/commands/expire ([https](https://redis.io/commands/expire ) result 200).
* [ ] http://redis.io/commands/hmset with 1 occurrences migrated to:
https://redis.io/commands/hmset ([https](https://redis.io/commands/hmset ) result 200).
* [ ] http://redis.io/topics/data-types with 1 occurrences migrated to:
https://redis.io/topics/data-types ([https](https://redis.io/topics/data-types ) result 200).
* [ ] http://redis.io/topics/notifications with 2 occurrences migrated to:
https://redis.io/topics/notifications ([https](https://redis.io/topics/notifications ) result 200).
* [ ] http://stackoverflow.com with 1 occurrences migrated to:
https://stackoverflow.com ([https](https://stackoverflow.com ) result 200).
* [ ] http://stackoverflow.com/tags/spring-session with 1 occurrences migrated to:
https://stackoverflow.com/tags/spring-session ([https](https://stackoverflow.com/tags/spring-session ) result 200).
* [ ] http://www.thymeleaf.org with 12 occurrences migrated to:
https://www.thymeleaf.org ([https](https://www.thymeleaf.org ) result 200).
* [ ] http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-3.dtd with 5 occurrences migrated to:
https://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-3.dtd ([https](https://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-3.dtd ) result 200).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
https://contributor-covenant.org ([https](https://contributor-covenant.org ) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/ ) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-data-tier.html with 2 occurrences migrated to:
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-data-tier.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-data-tier.html ) result 301).
* [ ] http://www.maxmind.com with 2 occurrences migrated to:
https://www.maxmind.com ([https](https://www.maxmind.com ) result 302).
These URLs were intentionally ignored.
* http://java.sun.com/jsp/jstl/core with 8 occurrences
* http://localhost with 15 occurrences
* http://localhost:8080/ with 31 occurrences
* http://localhost:8080/h2-console/ with 3 occurrences
* http://localhost:8080/logout with 1 occurrences
* http://localhost:8080/test/index with 2 occurrences
* http://localhost:xxxxx/hazelcast/rest/maps/spring:session:sessions/7e8383a4-082c-4ffe-a4bc-c40fd3363c5e with 1 occurrences
* http://www.w3.org/1999/xhtml with 5 occurrences
* http://www.webjars.org/tags with 8 occurrences
Fixes gh-1375
2019-03-22 10:24:07 -04:00
Spring Operator
90c08340fa
URL Cleanup
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.
* http://www.puppycrawl.com/dtds/configuration_1_3.dtd (404) with 1 occurrences migrated to:
https://www.puppycrawl.com/dtds/configuration_1_3.dtd ([https](https://www.puppycrawl.com/dtds/configuration_1_3.dtd ) result 404).
* http://www.puppycrawl.com/dtds/suppressions_1_1.dtd (404) with 1 occurrences migrated to:
https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ([https](https://www.puppycrawl.com/dtds/suppressions_1_1.dtd ) result 404).
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* http://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd with 3 occurrences migrated to:
https://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd ([https](https://www.hazelcast.com/schema/config/hazelcast-config-3.11.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans.xsd with 9 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans.xsd ([https](https://www.springframework.org/schema/beans/spring-beans.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context.xsd with 7 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context.xsd ([https](https://www.springframework.org/schema/context/spring-context.xsd ) result 200).
* http://www.springframework.org/schema/jdbc/spring-jdbc.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/jdbc/spring-jdbc.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc.xsd ) result 200).
* http://www.springframework.org/schema/security/spring-security.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/security/spring-security.xsd ([https](https://www.springframework.org/schema/security/spring-security.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-4.1.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-4.1.xsd ([https](https://www.springframework.org/schema/util/spring-util-4.1.xsd ) result 200).
* http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd with 2 occurrences migrated to:
https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ([https](https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ) result 302).
These URLs were intentionally ignored.
* http://java.sun.com/xml/ns/javaee with 4 occurrences
* http://www.hazelcast.com/schema/config with 6 occurrences
* http://www.springframework.org/schema/beans with 18 occurrences
* http://www.springframework.org/schema/context with 14 occurrences
* http://www.springframework.org/schema/jdbc with 2 occurrences
* http://www.springframework.org/schema/p with 5 occurrences
* http://www.springframework.org/schema/security with 4 occurrences
* http://www.springframework.org/schema/util with 4 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 14 occurrences
Fixes gh-1374
2019-03-21 16:59:05 -04:00
Spring Operator
0975d4d47e
URL Cleanup
...
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).
# Fixed URLs
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* http://www.apache.org/licenses/ with 1 occurrences migrated to:
https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/ ) result 200).
* http://www.apache.org/licenses/LICENSE-2.0 with 269 occurrences migrated to:
https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0 ) result 200).
* http://www.apache.org/licenses/LICENSE-2.0.html with 1 occurrences migrated to:
https://www.apache.org/licenses/LICENSE-2.0.html ([https](https://www.apache.org/licenses/LICENSE-2.0.html ) result 200).
2019-03-14 20:39:41 -05:00
Vedran Pavic
8b40e8cce8
Rework RedisHttpSessionConfiguration to bean method invocations
...
Closes : #1362
2019-03-14 21:34:53 +01:00
Vedran Pavic
381a07cb8c
Ignore failed rename operation for deleted session
...
In scenario with concurrent requests attempting to change session id, the "ERR no such key" error will occur for a thread that comes in second. This commit addresses the problem by ignoring the aforementioned error.
Resolves : #1270
2019-01-29 21:29:10 +01:00
Vedran Pavic
72198e9e80
Update integration tests
2019-01-10 16:19:38 +01:00
Jeff
a4a5b529ef
Fix RedisOperationsSessionRepository javadoc typos
...
Resolves : #1273
2018-12-04 16:35:56 +01:00
Vedran Pavic
3b7da0c370
Update integration tests
2018-11-26 17:54:57 +01:00
Vedran Pavic
8a4872b919
Improve exception asserts
2018-11-26 10:02:40 +01:00
Vedran Pavic
002136bad4
Align WebSession#save implementations with API
...
Closes gh-1135
2018-09-18 23:58:59 +02:00
Vedran Pavic
3e1a22102d
Ensure compatibility with Java 9 and 10
...
Closes gh-1196
2018-09-16 22:13:56 +02:00
Vedran Pavic
1a3da5944d
Polish
...
See gh-1128
2018-09-13 08:55:13 +02:00
Vedran Pavic
5d0775b802
Ensure RedisHttpSessionConfiguration handles events for configured database
...
At present, RedisHttpSessionConfiguration doesn't take into account database index when handlng events. In situations where multiple apps use Spring Session with same Redis instance, but different database, this results in invalid session events.
This commits improves event handling in RedisHttpSessionConfiguration to ensure currently used database is considered.
Closes gh-1128
2018-09-12 23:07:52 +02:00
Vedran Pavic
603a258172
Upgrade Testcontainers to 1.9.0-rc1
2018-09-11 23:06:10 +02:00
Vedran Pavic
57955b7d7b
Polish
...
See gh-1111
2018-09-10 17:03:10 +02:00
Vedran Pavic
6cc4bcd13d
Verify session existence before update in ReactiveRedisOperationsSessionRepository
...
Currently, ReactiveRedisOperationsSessionRepository#save does not ensure session's existence before executing update. This can result in an invalid session record in Redis, since write use only delta, and in turn to error while retrieving the invalid session record.
This commit adds check for session existence if session is being updated.
Closes gh-1111
2018-09-09 23:55:27 +02:00
Vedran Pavic
d3134ad065
Ignore failed rename operation for deleted session
...
Attempting to change session id for a deleted session currently results in "ERR no such key" error on rename operation of expired key. This commit addressed the problem by ignoring the aforementioned error.
Closes #1137
2018-09-04 23:07:27 +02:00
Vedran Pavic
c031ee278d
Add javadoc for RedisOperationsSessionRepository#getSessionRedisOperations
...
Closes #1175
2018-09-03 23:29:50 +02:00
Vedran Pavic
8267a90fcc
Polish contribution
...
See #1173
2018-09-03 23:28:14 +02:00
Johnny Lim
2113b330a7
Add @since for ReactiveRedisOperationsSR.getSessionRedisOperations()
2018-08-31 10:29:09 -05:00
Vedran Pavic
1181e52bb0
Upgrade spring-build-conventions to 0.0.18.RELEASE
2018-08-24 23:50:23 +02:00
Vedran Pavic
38de434158
Add support for @SpringSessionRedisOperations in reactive Redis repository
...
Closes gh-1164
2018-08-20 07:23:23 +02:00
Vedran Pavic
7ef0faf259
Update integration tests
2018-08-20 06:31:10 +02:00
Vedran Pavic
a2cd1e37fa
Add support for configuring custom RedisSerializer in reactive config
...
Closes gh-1149
2018-08-20 06:31:09 +02:00
Vedran Pavic
3d2a742328
Use Spring Java Format Checkstyle
...
Closes gh-1113
2018-07-23 15:16:35 +02:00
Vedran Pavic
7ac6e458e0
Update integration tests
2018-07-23 12:15:14 +02:00
Vedran Pavic
936fc853df
Ensure Session#getAttributeNames implementations return a copy
...
Currently, Session#getAttributeNames implementations, by delegating to MapSession, all return a session attribute map's key set. This causes ConcurrentModificationException when an attempt to modify session attributes is made while iterating over the returned attribute names.
Closes gh-1120
2018-07-17 15:05:03 +02:00
Vedran Pavic
63f105082a
Optimize Redis integration tests
...
This commit ensures that Redis Testcontainers used for integration testing are managed by Spring to ensure proper ordering on shutdown.
Previously, Redis Testcontainer was closed before LettuceConnectionFactory which caused pending commands to hang and added a lot of wait to project build.
Closes gh-1086
2018-06-01 11:50:01 +02:00
Vedran Pavic
941fdb46f2
Replace use of Test.expected with AssertJ
...
See gh-1032
2018-05-04 18:05:38 +02:00
Vedran Pavic
1d1253e643
Rename expiration key on changeSessionId in RedisOperationsSessionRepository
...
This commit ensures existing expiration key is renamed on changeSessionId operation in RedisOperationsSessionRepository. Previously, this key wasn't renamed which caused invalid invocations of SessionDestroyedEvent handling when key expired.
Closes gh-1029
2018-04-20 23:08:50 +02:00
Vedran Pavic
6c2f6c26cc
Update integration tests
...
- upgrade TestContainers to 1.7.1
- update Docker images
- improve MariaDB/MySQL tests to use UTF-8
Closes gh-1034
2018-04-20 14:10:52 +02:00
Vedran Pavic
91b4efc5bd
Fix attribute mapping in ReactiveRedisOperationsSessionRepository
...
This commit ensures that attributes with null values are correctly mapped to session on retrieval from Redis.
Closes gh-1035
2018-04-19 15:31:08 +02:00
Vedran Pavic
62bfeb3f05
Fix ReactiveRedisOperationsSessionRepository tests
2018-04-19 11:08:45 +02:00
Vedran Pavic
5173026aa8
Improve RedisOperationsSessionRepository tests
2018-04-16 08:52:43 +02:00