Vedran Pavic
0111c6e686
Provide database specific JdbcIndexedSessionRepository customizers
...
This commit provides JdbcIndexedSessionRepository customizers for the following SQL dialects:
- PostgreSQL
- MySQL (also used by MariaDB)
- SQL Server
- IBM DB2
- Oracle
These customizers are intended to address the concurrency issues occurring on insert of new session attribute by applying SQL dialect specific SQL upsert/merge statement instead of a generic insert.
Closes : #1213
2020-11-27 23:54:03 +01:00
Eleftheria Stein
b722b12327
Fix formatting
...
Issue gh-1654
2020-10-30 14:34:37 +01:00
Kohei Tamura
29ff2e47fb
Add try-with-resources to methods to insert BLOB
2020-10-30 08:45:52 -04:00
Eleftheria Stein
f1ea71e55e
Upgrade test dependencies
2020-06-25 15:41:39 +02:00
Jivko Vantchev
1a07ba5114
Fixes the duplicate index name in the example SQL script
...
The change is in the comments for the JdbcIndexedSessionRepository.
2020-02-14 12:03:24 +01:00
Vedran Pavic
c88456a183
Rework scheduling configurers into nested configuration
...
This commit extracts scheduling configurers that are used in Redis and JDBC configurations into nested configuration classes in order to avoid bean method references.
Resolves : #1516
2019-09-30 16:08:55 +02:00
Vedran Pavic
f5abd55394
Ensure proxyBeanMethods is set to false everywhere
...
This commit sets proxyBeanMethods to false on all @Enable*Session annotations since they are meta-annotated with @Configuration.
See: #1516
2019-09-30 16:08:55 +02:00
Vedran Pavic
b9fd3666b5
Update integration tests
2019-09-30 16:08:20 +02:00
Vedran Pavic
47a4873199
Align TransactionOperations usage with Spring Framework 5.2.0.RELEASE
...
See: #1506
2019-09-29 22:12:30 +02:00
Vedran Pavic
bd36e115a8
Align with spring-javaformat 0.0.15
2019-09-29 16:16:36 +02:00
Vedran Pavic
ec82336477
Parallelize JDBC integration tests
...
See: #1505
2019-09-27 07:14:23 +02:00
Vedran Pavic
feaf8780a8
Add support for configuring custom IndexResolver
...
See: #1467
2019-09-26 22:18:37 +02:00
Vedran Pavic
e48b46a2d5
Improve support for Oracle integration tests
...
Resolves : #1510
2019-09-23 22:35:33 +02:00
Vedran Pavic
8cc8fbb7fd
Harmonize naming of session repositories
...
Resolves : #1455
2019-09-22 21:47:53 +02:00
Vedran Pavic
702a35fac6
Update integration tests
2019-09-03 22:54:57 +02:00
Vedran Pavic
df3e4c5bc1
Add support for customizing session repository before initialization
...
This commit adds support for customizing session repository implementations (both SessionRepository and ReactiveSessionRepository) before initialization by introducing SessionRepositoryCustomizer and ReactiveSessionRepositoryCustomizer strategies.
Resolves : #1499
2019-09-03 22:17:36 +02:00
Vedran Pavic
f6c82f1eee
Improve support for customizing JDBC session store transaction behavior
...
Resolves : #1469
2019-08-23 23:26:11 +02:00
Vedran Pavic
dbeb33fd9d
Add flush mode support for JDBC sessions
...
Resolves : #1468
2019-08-05 18:58:29 +02:00
Vedran Pavic
2e0c347a3a
Update integration tests
2019-08-05 13:26:34 +02:00
Vedran Pavic
a988b062c3
Add IBM DB2 integration tests
...
Resolves : #1482
2019-08-02 01:11:02 +02:00
Vedran Pavic
09368243aa
Update integration tests
2019-07-30 23:28:54 +02:00
Vedran Pavic
033d6eecae
Add support for session save mode
...
This commit introduces SaveMode enum that individual SessionRepository implementations use to allow customization of the way they handle save operation in terms of tracking delta of changes.
Resolves : #1466
2019-07-14 10:35:05 +02:00
Vedran Pavic
46bc4b0957
Use no-op TransactionOperations
2019-07-07 13:40:59 +02:00
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
Craig Andrews
050ff7538b
In Oracle ignore non-existant tables when dropping
...
If tables don't exist, ignore that error when dropping.
This aligns Oracle with the existing mysql, postgresql, h2, and hsqldb behavior.
2019-06-19 08:25:44 -05:00
Vedran Pavic
822db7fbbf
Use spring-javaformat to format and check code
...
Resolves : #1450
2019-06-17 23:54:41 +02:00
Vedran Pavic
4f9d55feec
Update integration tests
2019-06-13 18:36:49 +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
52f59a83e4
Update integration tests
2019-05-31 23:31:01 +02:00
Vedran Pavic
b98c5216b4
Update configuration classes to use proxyBeanMethods=false
...
Resolves : #1345
2019-05-09 18:10:57 +02:00
Vedran Pavic
83e0f4f24a
Fix JdbcOperationsSessionRepository lazy deserialization
...
Resolves : #1411
2019-05-06 23:37:08 +02:00
Vedran Pavic
856a9b2c51
Update integration tests
2019-04-09 21:24:55 +02: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
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
8fc2f1130a
Update integration tests
2019-02-13 19:36:48 +01:00
Vedran Pavic
72198e9e80
Update integration tests
2019-01-10 16:19:38 +01:00
Vedran Pavic
3480c65c2b
Polish
2018-11-26 18:24:14 +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
11ad1db6e7
Update integration tests
2018-11-01 17:50:35 +01:00
Vedran Pavic
f34acebf84
Upgrade integration tests
2018-10-15 18:42:12 +02:00
Vedran Pavic
49daa3a9c7
Polish
2018-09-26 14:16:02 +02:00
Vedran Pavic
2762f001bf
Add Oracle integration tests
2018-09-25 19:10:15 +02:00
Vedran Pavic
93aee206fb
Configure default LobHandler to use temporary LOBs on Oracle
...
JdbcOperationsSessionRepository recently introduced validation when inserting new session attributes in order to prevent data integrity violations in highly concurrent environments. This is done by using INSERT INTO ... SELECT statement to verify existence of session record in parent table. Such arrangement causes problems with Oracle if inserted attribute is of size 4 kb or more.
This commit enhances JdbcHttpSessionConfiguration to detect Oracle database is used, and set createTemporaryLob option on default LobHandler to true.
Resolves : #1203
See also: #1031
2018-09-25 18:45:02 +02:00
Vedran Pavic
5fb0c4dd35
Improve JDBC integration tests
2018-09-24 06:30:47 +02:00
Vedran Pavic
eae8592f2b
Upgrade integration tests
2018-09-20 19:48:33 +02:00
Vedran Pavic
b61937def7
Polish contribution
...
Resolves : #1133
2018-09-19 23:53:38 +02:00
Craig Andrews
c523fb591d
Deserialize attributes lazily in JdbcOperationsSessionRepository
...
Instead of deserializing all of the session attributes as they are read from the database, deserialize as #getAttribute requests them.
See: #1133
2018-09-19 23:48:15 +02:00