Skip to content

Commit 07cb2dc

Browse files
author
chao.wang
committed
Add JdbcRelyingPartyRegistrationRepository
Closes gh-16012
1 parent ff8b77d commit 07cb2dc

File tree

7 files changed

+1070
-0
lines changed

7 files changed

+1070
-0
lines changed

saml2/saml2-service-provider/spring-security-saml2-service-provider.gradle

+2
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ dependencies {
106106
provided 'jakarta.servlet:jakarta.servlet-api'
107107

108108
optional 'com.fasterxml.jackson.core:jackson-databind'
109+
optional 'org.springframework:spring-jdbc'
109110

110111
testImplementation 'com.squareup.okhttp3:mockwebserver'
111112
testImplementation "org.assertj:assertj-core"
@@ -118,6 +119,7 @@ dependencies {
118119
testImplementation "org.springframework:spring-test"
119120

120121
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
122+
testRuntimeOnly 'org.hsqldb:hsqldb'
121123
}
122124

123125
jar {

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/registration/JdbcRelyingPartyRegistrationRepository.java

+451
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
CREATE TABLE saml2_relying_party_registration
2+
(
3+
id VARCHAR(200) NOT NULL,
4+
entity_id VARCHAR(1000),
5+
name_id_format VARCHAR(200),
6+
acs_location VARCHAR(1000),
7+
acs_binding VARCHAR(200),
8+
signing_credentials BYTEA,
9+
decryption_credentials BYTEA,
10+
singlelogout_url VARCHAR(1000),
11+
singlelogout_response_url VARCHAR(1000),
12+
singlelogout_binding VARCHAR(200),
13+
assertingparty_entity_id VARCHAR(1000),
14+
assertingparty_metadata_uri VARCHAR(1000),
15+
assertingparty_singlesignon_url VARCHAR(1000),
16+
assertingparty_singlesignon_binding VARCHAR(200),
17+
assertingparty_singlesignon_sign_request VARCHAR(1000),
18+
assertingparty_verification_credentials BYTEA,
19+
assertingparty_singlelogout_url VARCHAR(1000),
20+
assertingparty_singlelogout_response_url VARCHAR(1000),
21+
assertingparty_singlelogout_binding VARCHAR(200),
22+
PRIMARY KEY (id)
23+
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
CREATE TABLE saml2_relying_party_registration
2+
(
3+
id VARCHAR(200) NOT NULL,
4+
entity_id VARCHAR(1000),
5+
name_id_format VARCHAR(200),
6+
acs_location VARCHAR(1000),
7+
acs_binding VARCHAR(200),
8+
signing_credentials blob,
9+
decryption_credentials blob,
10+
singlelogout_url VARCHAR(1000),
11+
singlelogout_response_url VARCHAR(1000),
12+
singlelogout_binding VARCHAR(200),
13+
assertingparty_entity_id VARCHAR(1000),
14+
assertingparty_metadata_uri VARCHAR(1000),
15+
assertingparty_singlesignon_url VARCHAR(1000),
16+
assertingparty_singlesignon_binding VARCHAR(200),
17+
assertingparty_singlesignon_sign_request VARCHAR(1000),
18+
assertingparty_verification_credentials blob,
19+
assertingparty_singlelogout_url VARCHAR(1000),
20+
assertingparty_singlelogout_response_url VARCHAR(1000),
21+
assertingparty_singlelogout_binding VARCHAR(200),
22+
PRIMARY KEY (id)
23+
);

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/registration/JdbcRelyingPartyRegistrationRepositoryTests.java

+520
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIID1zCCAr+gAwIBAgIUCzQeKBMTO0iHVW3iKmZC41haqCowDQYJKoZIhvcNAQEL
3+
BQAwezELMAkGA1UEBhMCWFgxEjAQBgNVBAgMCVN0YXRlTmFtZTERMA8GA1UEBwwI
4+
Q2l0eU5hbWUxFDASBgNVBAoMC0NvbXBhbnlOYW1lMRswGQYDVQQLDBJDb21wYW55
5+
U2VjdGlvbk5hbWUxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0yMzA5MjAwODI5MDNa
6+
Fw0zMzA5MTcwODI5MDNaMHsxCzAJBgNVBAYTAlhYMRIwEAYDVQQIDAlTdGF0ZU5h
7+
bWUxETAPBgNVBAcMCENpdHlOYW1lMRQwEgYDVQQKDAtDb21wYW55TmFtZTEbMBkG
8+
A1UECwwSQ29tcGFueVNlY3Rpb25OYW1lMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEi
9+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUfi4aaCotJZX6OSDjv6fxCCfc
10+
ihSs91Z/mmN+yc1fsxVSs53SIbqUuo+Wzhv34kp8I/r03P9LWVTkFPbeDxAl75Oa
11+
PGggxK55US0Zfy9Hj1BwWIKV3330N61emID1GDEtFKL4yJbJdreQXnIXTBL2o76V
12+
nuV/tYozyZnb07IQ1WhUm5WDxgzM0yFudMynTczCBeZHfvharDtB8PFFhCZXW2/9
13+
TZVVfW4oOML8EAX3hvnvYBlFl/foxXekZSwq/odOkmWCZavT2+0sburHUlOnPGUh
14+
Qj4tHwpMRczp7VX4ptV1D2UrxsK/2B+s9FK2QSLKQ9JzAYJ6WxQjHcvET9jvAgMB
15+
AAGjUzBRMB0GA1UdDgQWBBQjDr/1E/01pfLPD8uWF7gbaYL0TTAfBgNVHSMEGDAW
16+
gBQjDr/1E/01pfLPD8uWF7gbaYL0TTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
17+
DQEBCwUAA4IBAQAGjUuec0+0XNMCRDKZslbImdCAVsKsEWk6NpnUViDFAxL+KQuC
18+
NW131UeHb9SCzMqRwrY4QI3nAwJQCmilL/hFM3ss4acn3WHu1yci/iKPUKeL1ec5
19+
kCFUmqX1NpTiVaytZ/9TKEr69SMVqNfQiuW5U1bIIYTqK8xo46WpM6YNNHO3eJK6
20+
NH0MW79Wx5ryi4i4C6afqYbVbx7tqcmy8CFeNxgZ0bFQ87SiwYXIj77b6sVYbu32
21+
doykBQgSHLcagWASPQ73m73CWUgo+7+EqSKIQqORbgmTLPmOUh99gFIx7jmjTyHm
22+
NBszx1ZVWuIv3mWmp626Kncyc+LLM9tvgymx
23+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDUfi4aaCotJZX6
3+
OSDjv6fxCCfcihSs91Z/mmN+yc1fsxVSs53SIbqUuo+Wzhv34kp8I/r03P9LWVTk
4+
FPbeDxAl75OaPGggxK55US0Zfy9Hj1BwWIKV3330N61emID1GDEtFKL4yJbJdreQ
5+
XnIXTBL2o76VnuV/tYozyZnb07IQ1WhUm5WDxgzM0yFudMynTczCBeZHfvharDtB
6+
8PFFhCZXW2/9TZVVfW4oOML8EAX3hvnvYBlFl/foxXekZSwq/odOkmWCZavT2+0s
7+
burHUlOnPGUhQj4tHwpMRczp7VX4ptV1D2UrxsK/2B+s9FK2QSLKQ9JzAYJ6WxQj
8+
HcvET9jvAgMBAAECggEADdeRuZml1F65mDJm1enduaH+NWvEm1yEr3ecr0fbujYI
9+
bQ89+CVx/znvRvPH4aFwQwmgUZl12JrfS05MTectoPMBf/obDwtmPDPmsV2rdEi9
10+
2jEB11vW23T8X7L6hOdzCKHqrd8kkhzK1LuPnhHlaFipU8YlOBOuMYpv8eB78y79
11+
Qkd5/ZEygFhqVGz96R7nT/xS21aPC7OPhicAauLLuguF4caCNhwkjLi3bizLemUn
12+
4i41q69drg7G8WX6BTxzem5FupKfI8rn2EkOjO/biVRknzGxAdqkM8SDHWkqeOuY
13+
8QVhc1kZsMkB0BGPlDPStUwEHSfUiND4GJTcngc++QKBgQD2lyeW3PoPjQ1qzjN4
14+
V/0XE77zpcPE5dW7chLtiWRY1dqk2uOJ32iOtxuqk9Q/YMSZyPJlTkfI5JePuC/B
15+
MB+QXzXuWN03Vn0ZrOpQlxcdA4A1o10NT1nEw8kZlf4+LyUk8GpMGUhjnxFZpZbf
16+
5S3fy0/2V8wGvOmXR65c8m6ASQKBgQDcmfCV5npu1HrtO8jmU9gBIhniNjB4IWue
17+
TSRt3ANDQaVBqsVaIMe/mUEQrZ6MdikMeA4bobOA6bUYwOiq8JGWSenAzGL22TbA
18+
W51q6A8hgDCuH1JnoagqUIbr61kwEVcfbRHEFpuxLURsjoDg/xBtwO96SxWPh5Wr
19+
+f1q8t5/dwKBgGWc+AVk3e6Wk1bVzcPjjjl6O4+vWTLD+wUZBs+3dBBfX4/bWzQv
20+
Sai1r8Lk0+uh9qHgenJghZg1CneA0LztFbSqZ1DmcZIiI7720D+RY0bjcGup++hG
21+
MJmyjCXs9y2sw8OrBkKBkKDspXupjriIehTkdPjwSPTl1+Qs9575j6txAoGAT8n+
22+
ErnCHsQLkjLFf0lkH0TOR9uBvHGaEy+jtXiWVYUw2IeDyg2BMfOkbPvfFL7IKhJi
23+
R+w8mKvvLHzZqrpIbitduLY0NURrYTfBwCEfF+bdtJzvmTwHLwbhRgNhxtj+wgcZ
24+
HetvdK4CyaDhTH/02T2nYHw32CoaIJHS7xPZFhECgYEAv7xRawjlrC4V0BLjP3Ej
25+
pk8BbsRABxN1CrS6nJK+So4u2gKQDsL3WA0oJTS8v8AD5LvQUNr1d57FVlq9lwCd
26+
u623eOIuluCUZBVy1iYdkRXWz9pg5bCidCgEYUpF3SqpsuFou0XFzDD773UVQFVw
27+
VYriYasPwmzS2y2P7PKFzJs=
28+
-----END PRIVATE KEY-----

0 commit comments

Comments
 (0)