Skip to content

Commit 742ceea

Browse files
praseodymjricher
authored andcommitted
Support for PostgreSQL
1 parent d583499 commit 742ceea

File tree

3 files changed

+302
-3
lines changed

3 files changed

+302
-3
lines changed
Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
--
2+
-- Tables for OIDC Server functionality, PostgreSQL
3+
--
4+
5+
CREATE TABLE IF NOT EXISTS access_token (
6+
id SERIAL PRIMARY KEY,
7+
token_value VARCHAR(4096),
8+
expiration TIMESTAMP,
9+
token_type VARCHAR(256),
10+
refresh_token_id BIGINT,
11+
client_id BIGINT,
12+
auth_holder_id BIGINT,
13+
id_token_id BIGINT,
14+
approved_site_id BIGINT
15+
);
16+
17+
CREATE TABLE IF NOT EXISTS access_token_permissions (
18+
access_token_id BIGINT NOT NULL,
19+
permission_id BIGINT NOT NULL
20+
);
21+
22+
CREATE TABLE IF NOT EXISTS address (
23+
id SERIAL PRIMARY KEY,
24+
formatted VARCHAR(256),
25+
street_address VARCHAR(256),
26+
locality VARCHAR(256),
27+
region VARCHAR(256),
28+
postal_code VARCHAR(256),
29+
country VARCHAR(256)
30+
);
31+
32+
CREATE TABLE IF NOT EXISTS approved_site (
33+
id SERIAL PRIMARY KEY,
34+
user_id VARCHAR(256),
35+
client_id VARCHAR(256),
36+
creation_date TIMESTAMP,
37+
access_date TIMESTAMP,
38+
timeout_date TIMESTAMP,
39+
whitelisted_site_id BIGINT
40+
);
41+
42+
CREATE TABLE IF NOT EXISTS approved_site_scope (
43+
owner_id BIGINT,
44+
scope VARCHAR(256)
45+
);
46+
47+
CREATE TABLE IF NOT EXISTS authentication_holder (
48+
id SERIAL PRIMARY KEY,
49+
authentication LONGVARBINARY
50+
);
51+
52+
CREATE TABLE IF NOT EXISTS client_authority (
53+
owner_id BIGINT,
54+
authority LONGVARBINARY
55+
);
56+
57+
CREATE TABLE IF NOT EXISTS authorization_code (
58+
id SERIAL PRIMARY KEY,
59+
code VARCHAR(256),
60+
auth_holder_id BIGINT,
61+
expiration TIMESTAMP
62+
);
63+
64+
CREATE TABLE IF NOT EXISTS client_grant_type (
65+
owner_id BIGINT,
66+
grant_type VARCHAR(2000)
67+
);
68+
69+
CREATE TABLE IF NOT EXISTS client_response_type (
70+
owner_id BIGINT,
71+
response_type VARCHAR(2000)
72+
);
73+
74+
CREATE TABLE IF NOT EXISTS blacklisted_site (
75+
id SERIAL PRIMARY KEY,
76+
uri VARCHAR(2048)
77+
);
78+
79+
CREATE TABLE IF NOT EXISTS client_details (
80+
id SERIAL PRIMARY KEY,
81+
82+
client_description VARCHAR(1024),
83+
reuse_refresh_tokens BOOLEAN DEFAULT true NOT NULL,
84+
dynamically_registered BOOLEAN DEFAULT false NOT NULL,
85+
allow_introspection BOOLEAN DEFAULT false NOT NULL,
86+
id_token_validity_seconds BIGINT DEFAULT 600 NOT NULL,
87+
88+
client_id VARCHAR(256),
89+
client_secret VARCHAR(2048),
90+
access_token_validity_seconds BIGINT,
91+
refresh_token_validity_seconds BIGINT,
92+
93+
application_type VARCHAR(256),
94+
client_name VARCHAR(256),
95+
token_endpoint_auth_method VARCHAR(256),
96+
subject_type VARCHAR(256),
97+
98+
logo_uri VARCHAR(2048),
99+
policy_uri VARCHAR(2048),
100+
client_uri VARCHAR(2048),
101+
tos_uri VARCHAR(2048),
102+
103+
jwks_uri VARCHAR(2048),
104+
sector_identifier_uri VARCHAR(2048),
105+
106+
request_object_signing_alg VARCHAR(256),
107+
108+
user_info_signed_response_alg VARCHAR(256),
109+
user_info_encrypted_response_alg VARCHAR(256),
110+
user_info_encrypted_response_enc VARCHAR(256),
111+
112+
id_token_signed_response_alg VARCHAR(256),
113+
id_token_encrypted_response_alg VARCHAR(256),
114+
id_token_encrypted_response_enc VARCHAR(256),
115+
116+
token_endpoint_auth_signing_alg VARCHAR(256),
117+
118+
default_max_age BIGINT,
119+
require_auth_time BOOLEAN,
120+
created_at TIMESTAMP,
121+
initiate_login_uri VARCHAR(2048),
122+
post_logout_redirect_uri VARCHAR(2048),
123+
UNIQUE (client_id)
124+
);
125+
126+
CREATE TABLE IF NOT EXISTS client_request_uri (
127+
owner_id BIGINT,
128+
request_uri VARCHAR(2000)
129+
);
130+
131+
CREATE TABLE IF NOT EXISTS client_post_logout_redirect_uri (
132+
owner_id BIGINT,
133+
post_logout_redirect_uri VARCHAR(2000)
134+
);
135+
136+
CREATE TABLE IF NOT EXISTS client_default_acr_value (
137+
owner_id BIGINT,
138+
default_acr_value VARCHAR(2000)
139+
);
140+
141+
CREATE TABLE IF NOT EXISTS client_contact (
142+
owner_id BIGINT,
143+
contact VARCHAR(256)
144+
);
145+
146+
CREATE TABLE IF NOT EXISTS client_redirect_uri (
147+
owner_id BIGINT,
148+
redirect_uri VARCHAR(2048)
149+
);
150+
151+
CREATE TABLE IF NOT EXISTS refresh_token (
152+
id SERIAL PRIMARY KEY,
153+
token_value VARCHAR(4096),
154+
expiration TIMESTAMP,
155+
auth_holder_id BIGINT,
156+
client_id BIGINT
157+
);
158+
159+
CREATE TABLE IF NOT EXISTS client_resource (
160+
owner_id BIGINT,
161+
resource_id VARCHAR(256)
162+
);
163+
164+
CREATE TABLE IF NOT EXISTS client_scope (
165+
owner_id BIGINT,
166+
scope VARCHAR(2048)
167+
);
168+
169+
CREATE TABLE IF NOT EXISTS token_scope (
170+
owner_id BIGINT,
171+
scope VARCHAR(2048)
172+
);
173+
174+
CREATE TABLE IF NOT EXISTS system_scope (
175+
id SERIAL PRIMARY KEY,
176+
scope VARCHAR(256) NOT NULL,
177+
description VARCHAR(4096),
178+
icon VARCHAR(256),
179+
restricted BOOLEAN DEFAULT false NOT NULL,
180+
default_scope BOOLEAN DEFAULT false NOT NULL,
181+
structured BOOLEAN DEFAULT false NOT NULL,
182+
structured_param_description VARCHAR(256),
183+
UNIQUE (scope)
184+
);
185+
186+
CREATE TABLE IF NOT EXISTS user_info (
187+
id SERIAL PRIMARY KEY,
188+
sub VARCHAR(256),
189+
preferred_username VARCHAR(256),
190+
name VARCHAR(256),
191+
given_name VARCHAR(256),
192+
family_name VARCHAR(256),
193+
middle_name VARCHAR(256),
194+
nickname VARCHAR(256),
195+
profile VARCHAR(256),
196+
picture VARCHAR(256),
197+
website VARCHAR(256),
198+
email VARCHAR(256),
199+
email_verified BOOLEAN,
200+
gender VARCHAR(256),
201+
zone_info VARCHAR(256),
202+
locale VARCHAR(256),
203+
phone_number VARCHAR(256),
204+
phone_number_verified BOOLEAN,
205+
address_id VARCHAR(256),
206+
updated_time VARCHAR(256),
207+
birthdate VARCHAR(256)
208+
);
209+
210+
CREATE TABLE IF NOT EXISTS whitelisted_site (
211+
id SERIAL PRIMARY KEY,
212+
creator_user_id VARCHAR(256),
213+
client_id VARCHAR(256)
214+
);
215+
216+
CREATE TABLE IF NOT EXISTS whitelisted_site_scope (
217+
owner_id BIGINT,
218+
scope VARCHAR(256)
219+
);
220+
221+
CREATE TABLE IF NOT EXISTS pairwise_identifier (
222+
id SERIAL PRIMARY KEY,
223+
identifier VARCHAR(256),
224+
sub VARCHAR(256),
225+
sector_identifier VARCHAR(2048)
226+
);
227+
228+
CREATE TABLE IF NOT EXISTS resource_set (
229+
id SERIAL PRIMARY KEY,
230+
name VARCHAR(1024) NOT NULL,
231+
uri VARCHAR(1024),
232+
icon_uri VARCHAR(1024),
233+
rs_type VARCHAR(256),
234+
owner VARCHAR(256) NOT NULL,
235+
client_id VARCHAR(256)
236+
);
237+
238+
CREATE TABLE IF NOT EXISTS resource_set_scope (
239+
owner_id BIGINT NOT NULL,
240+
scope VARCHAR(256) NOT NULL
241+
);
242+
243+
CREATE TABLE IF NOT EXISTS permission_ticket (
244+
id SERIAL PRIMARY KEY,
245+
ticket VARCHAR(256) NOT NULL,
246+
permission_id BIGINT NOT NULL,
247+
expiration TIMESTAMP
248+
);
249+
250+
CREATE TABLE IF NOT EXISTS permission (
251+
id SERIAL PRIMARY KEY,
252+
resource_set_id BIGINT NOT NULL
253+
);
254+
255+
CREATE TABLE IF NOT EXISTS permission_scope (
256+
owner_id BIGINT NOT NULL,
257+
scope VARCHAR(256) NOT NULL
258+
);
259+
260+
CREATE TABLE IF NOT EXISTS claim (
261+
id SERIAL PRIMARY KEY,
262+
name VARCHAR(256),
263+
friendly_name VARCHAR(1024),
264+
claim_type VARCHAR(1024),
265+
claim_value VARCHAR(1024),
266+
resource_set_id BIGINT,
267+
permission_ticket_id BIGINT
268+
);
269+
270+
CREATE TABLE IF NOT EXISTS claim_token_format (
271+
owner_id BIGINT NOT NULL,
272+
claim_token_format VARCHAR(1024)
273+
);
274+
275+
CREATE TABLE IF NOT EXISTS claim_issuer (
276+
owner_id BIGINT NOT NULL,
277+
issuer VARCHAR(1024)
278+
);

openid-connect-server-webapp/src/main/webapp/WEB-INF/data-context.xml

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
<property name="url" value="jdbc:hsqldb:mem:oic;sql.syntax_mys=true" />
2727
<!-- <property name="url" value="jdbc:hsqldb:file:/tmp/oic;sql.syntax_mys=true" /> -->
2828
<property name="username" value="oic" />
29-
<property name="password" value="oic" />
29+
<property name="password" value="oic" />
3030
</bean>
31-
31+
3232
<!-- Use the following to set up the OIC tables in the in-memory DB
3333
If you are using a file based HSQLDB you should not run this every time. -->
3434
<jdbc:initialize-database data-source="dataSource">
@@ -41,7 +41,7 @@
4141
<jdbc:script location="classpath:/db/clients.sql"/>
4242
<jdbc:script location="classpath:/db/scopes.sql"/>
4343
</jdbc:initialize-database>
44-
44+
4545
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
4646
<property name="databasePlatform" value="org.eclipse.persistence.platform.database.HSQLPlatform" />
4747
<property name="showSql" value="true" />
@@ -63,4 +63,20 @@
6363
</bean>
6464
6565
-->
66+
67+
<!-- The following is for connecting to a PostgreSQL database that has been initialized with
68+
src/main/resources/db/tables/psql_database_tables.sql -->
69+
<!--
70+
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
71+
<property name="driverClassName" value="org.postgresql.Driver" />
72+
<property name="url" value="jdbc:postgresql://localhost/oic" />
73+
<property name="username" value="oic" />
74+
<property name="password" value="oic" />
75+
</bean>
76+
77+
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
78+
<property name="databasePlatform" value="org.eclipse.persistence.platform.database.PostgreSQLPlatform" />
79+
<property name="showSql" value="true" />
80+
</bean>
81+
-->
6682
</beans>

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,11 @@
356356
<artifactId>hsqldb</artifactId>
357357
<version>2.2.9</version>
358358
</dependency>
359+
<dependency>
360+
<groupId>org.postgresql</groupId>
361+
<artifactId>postgresql</artifactId>
362+
<version>9.4-1201-jdbc4</version>
363+
</dependency>
359364
<dependency>
360365
<groupId>org.eclipse.persistence</groupId>
361366
<artifactId>org.eclipse.persistence.jpa</artifactId>

0 commit comments

Comments
 (0)