From f724d3a9fe1bd7db1ae72878f8110702b5511004 Mon Sep 17 00:00:00 2001 From: Amanda Anganes Date: Thu, 9 Aug 2012 12:28:54 -0400 Subject: [PATCH] updated userinfo table definitions --- .../oauth2/model/ClientDetailsEntity.java | 19 +- .../mitre/openid/connect/model/Address.java | 3 + .../openid/connect/model/DefaultUserInfo.java | 13 +- .../mitre/openid/connect/model/UserInfo.java | 12 ++ .../db/tables/client_details.sql | 1 + .../db/tables/database_tables.sql | 164 ++++++++++++++++++ openid-connect-server/db/tables/user_info.sql | 21 +++ openid-connect-server/db/tables/userinfo.sql | 21 --- 8 files changed, 231 insertions(+), 23 deletions(-) create mode 100644 openid-connect-server/db/tables/database_tables.sql create mode 100644 openid-connect-server/db/tables/user_info.sql delete mode 100644 openid-connect-server/db/tables/userinfo.sql diff --git a/openid-connect-common/src/main/java/org/mitre/oauth2/model/ClientDetailsEntity.java b/openid-connect-common/src/main/java/org/mitre/oauth2/model/ClientDetailsEntity.java index e945217b4..b876e4f56 100644 --- a/openid-connect-common/src/main/java/org/mitre/oauth2/model/ClientDetailsEntity.java +++ b/openid-connect-common/src/main/java/org/mitre/oauth2/model/ClientDetailsEntity.java @@ -62,6 +62,7 @@ public class ClientDetailsEntity implements ClientDetails { private Boolean allowRefresh = false; // do we allow refresh tokens for this client? private Boolean allowMultipleAccessTokens = false; // do we allow multiple access tokens, or not? private Boolean reuseRefreshToken = false; // do we let someone reuse a refresh token? + private Integer idTokenValiditySeconds = 0; //timeout for id tokens /** Fields from ClientDetails interface **/ private String clientId = ""; @@ -352,10 +353,26 @@ public class ClientDetailsEntity implements ClientDetails { this.reuseRefreshToken = reuseRefreshToken; } - + /** + * @return the idTokenValiditySeconds + */ + @Basic + @Column(name="id_token_validity_seconds") + public Integer getIdTokenValiditySeconds() { + return idTokenValiditySeconds; + } + + /** + * @param idTokenValiditySeconds the idTokenValiditySeconds to set + */ + public void setIdTokenValiditySeconds(Integer idTokenValiditySeconds) { + this.idTokenValiditySeconds = idTokenValiditySeconds; + } + + /** * If the clientSecret is not null, then it is always required. */ diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/Address.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/Address.java index 82def3ec2..c91311599 100644 --- a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/Address.java +++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/Address.java @@ -16,6 +16,7 @@ package org.mitre.openid.connect.model; import javax.persistence.Basic; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -59,6 +60,7 @@ public class Address { * @return the streetAddress */ @Basic + @Column(name="street_address") public String getStreetAddress() { return streetAddress; } @@ -98,6 +100,7 @@ public class Address { * @return the postalCode */ @Basic + @Column(name="postal_code") public String getPostalCode() { return postalCode; } diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/DefaultUserInfo.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/DefaultUserInfo.java index 2dc19b4d1..36edafa1e 100644 --- a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/DefaultUserInfo.java +++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/DefaultUserInfo.java @@ -16,6 +16,7 @@ package org.mitre.openid.connect.model; import javax.persistence.Basic; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @@ -27,7 +28,7 @@ import javax.persistence.OneToOne; import javax.persistence.Table; @Entity -@Table(name="userinfo") +@Table(name="user_info") @NamedQueries({ @NamedQuery(name="DefaultUserInfo.getAll", query = "select u from DefaultUserInfo u") }) @@ -59,6 +60,7 @@ public class DefaultUserInfo implements UserInfo { @Override @Id @GeneratedValue(strategy=GenerationType.IDENTITY) + @Column(name="user_id") public String getUserId() { return userId; } @@ -73,6 +75,8 @@ public class DefaultUserInfo implements UserInfo { * @see org.mitre.openid.connect.model.UserInfo#getPreferredUsername */ @Override + @Basic + @Column(name="preferred_username") public String getPreferredUsername() { return this.preferredUsername; } @@ -103,6 +107,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="given_name") public String getGivenName() { return givenName; } @@ -118,6 +123,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="family_name") public String getFamilyName() { return familyName; } @@ -133,6 +139,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="middle_name") public String getMiddleName() { return middleName; } @@ -223,6 +230,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="email_verified") public Boolean getEmailVerified() { return emailVerified; } @@ -253,6 +261,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="zone_info") public String getZoneinfo() { return zoneinfo; } @@ -283,6 +292,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="phone_number") public String getPhoneNumber() { return phoneNumber; } @@ -314,6 +324,7 @@ public class DefaultUserInfo implements UserInfo { */ @Override @Basic + @Column(name="updated_time") public String getUpdatedTime() { return updatedTime; } diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/UserInfo.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/UserInfo.java index b003f4a95..54a7cbe2d 100644 --- a/openid-connect-common/src/main/java/org/mitre/openid/connect/model/UserInfo.java +++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/model/UserInfo.java @@ -1,20 +1,24 @@ package org.mitre.openid.connect.model; import javax.persistence.Basic; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.OneToOne; +import javax.persistence.Table; @Entity @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) +@Table(name="user_info") public interface UserInfo { /** * @return the userId */ @Id + @Column(name="user_id") public abstract String getUserId(); /** @@ -26,6 +30,7 @@ public interface UserInfo { * @return the preferred username */ @Basic + @Column(name="preferred_username") public abstract String getPreferredUsername(); /** @@ -48,6 +53,7 @@ public interface UserInfo { * @return the givenName */ @Basic + @Column(name="given_name") public abstract String getGivenName(); /** @@ -59,6 +65,7 @@ public interface UserInfo { * @return the familyName */ @Basic + @Column(name="family_name") public abstract String getFamilyName(); /** @@ -70,6 +77,7 @@ public interface UserInfo { * @return the middleName */ @Basic + @Column(name="middle_name") public abstract String getMiddleName(); /** @@ -136,6 +144,7 @@ public interface UserInfo { * @return the verified */ @Basic + @Column(name="email_verified") public abstract Boolean getEmailVerified(); /** @@ -158,6 +167,7 @@ public interface UserInfo { * @return the zoneinfo */ @Basic + @Column(name="zone_info") public abstract String getZoneinfo(); /** @@ -180,6 +190,7 @@ public interface UserInfo { * @return the phoneNumber */ @Basic + @Column(name="phone_number") public abstract String getPhoneNumber(); /** @@ -202,6 +213,7 @@ public interface UserInfo { * @return the updatedTime */ @Basic + @Column(name="updated_time") public abstract String getUpdatedTime(); /** diff --git a/openid-connect-server/db/tables/client_details.sql b/openid-connect-server/db/tables/client_details.sql index 6d3cede7e..85f33534f 100644 --- a/openid-connect-server/db/tables/client_details.sql +++ b/openid-connect-server/db/tables/client_details.sql @@ -4,6 +4,7 @@ CREATE TABLE client_details ( allow_refresh TINYINT, allow_multiple_access_tokens TINYINT, reuse_refresh_tokens TINYINT, + id_token_validity_seconds BIGINT, client_id VARCHAR(256), client_secret VARCHAR(2000), diff --git a/openid-connect-server/db/tables/database_tables.sql b/openid-connect-server/db/tables/database_tables.sql new file mode 100644 index 000000000..b1e65b97f --- /dev/null +++ b/openid-connect-server/db/tables/database_tables.sql @@ -0,0 +1,164 @@ +CREATE TABLE access_token ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + token_value VARCHAR(4096), + expiration TIMESTAMP, + token_type VARCHAR(256), + refresh_token_id VARCHAR(256), + client_id VARCHAR(256), + auth_holder_id VARCHAR(256), + id_token_string VARCHAR(4096) +); + +CREATE TABLE address ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + formatted VARCHAR(256), + street_address VARCHAR(256), + locality VARCHAR(256), + region VARCHAR(256), + postal_code VARCHAR(256), + country VARCHAR(256) +); + +CREATE TABLE allowed_scope ( + owner_id VARCHAR(256), + allowed_scope VARCHAR(256) +); + +CREATE TABLE approved_site ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + user_id VARCHAR(256), + client_id VARCHAR(256), + creation_date DATE, + access_date DATE, + timeout_date DATE, + whitelisted_site_id VARCHAR(256) +); + +CREATE TABLE authentication_holder ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + owner_id VARCHAR(256), + authentication LONGBLOB +); + +CREATE TABLE authority ( + owner_id VARCHAR(4096), + authority LONGBLOB +); + +CREATE TABLE authorized_grant_type ( + owner_id VARCHAR(256), + authorized_grant_type VARCHAR(2000) +); + +CREATE TABLE client_details ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + client_description VARCHAR(256), + allow_refresh TINYINT, + allow_multiple_access_tokens TINYINT, + reuse_refresh_tokens TINYINT, + id_token_validity_seconds BIGINT, + + client_id VARCHAR(256), + client_secret VARCHAR(2000), + access_token_validity_seconds BIGINT, + refresh_token_validity_seconds BIGINT, + + application_type VARCHAR(256), + application_name VARCHAR(256), + token_endpoint_auth_type VARCHAR(256), + user_id_type VARCHAR(256), + + logo_url VARCHAR(256), + policy_url VARCHAR(256), + jwk_url VARCHAR(256), + jwk_encryption_url VARCHAR(256), + x509_url VARCHAR(256), + x509_encryption_url VARCHAR(256), + sector_identifier_url VARCHAR(256), + + requre_signed_request_object VARCHAR(256), + + user_info_signed_response_alg VARCHAR(256), + user_info_encrypted_response_alg VARCHAR(256), + user_info_encrypted_response_enc VARCHAR(256), + user_info_encrypted_response_int VARCHAR(256), + + id_token_signed_response_alg VARCHAR(256), + id_token_encrypted_response_alg VARCHAR(256), + id_token_encrypted_response_enc VARCHAR(256), + id_token_encrypted_response_int VARCHAR(256), + + default_max_age BIGINT, + require_auth_time TINYINT, + default_acr VARCHAR(256) +); + +CREATE TABLE contact ( + owner_id VARCHAR(256), + contact VARCHAR(256) +); + +CREATE TABLE event ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + type INT(3), + timestamp DATE +); + +CREATE TABLE idtoken ( + id BIGINT AUTO_INCREMENT PRIMARY KEY +); + +CREATE TABLE idtokenclaims ( + id BIGINT AUTO_INCREMENT PRIMARY KEY +); + +CREATE TABLE redirect_uri ( + owner_id VARCHAR(256), + redirect_uri VARCHAR(2000) +); + +CREATE TABLE refresh_token ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + token_value VARCHAR(4096), + expiration TIMESTAMP, + client_id VARCHAR(256) +); + +CREATE TABLE resource_id ( + owner_id VARCHAR(256), + resource_id VARCHAR(256) +); + +CREATE TABLE scope ( + owner_id VARCHAR(4096), + scope VARCHAR(2048) +); + +CREATE TABLE user_info ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + user_id VARCHAR(256), + preferred_username VARCHAR(256), + name VARCHAR(256), + given_name VARCHAR(256), + family_name VARCHAR(256), + middle_name VARCHAR(256), + nickname VARCHAR(256), + profile VARCHAR(256), + picture VARCHAR(256), + website VARCHAR(256), + email VARCHAR(256), + email_verified BOOLEAN, + gender VARCHAR(256), + zone_info VARCHAR(256), + locale VARCHAR(256), + phone_number VARCHAR(256), + address_id VARCHAR(256), + updated_time VARCHAR(256) +); + +CREATE TABLE whitelisted_site ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + creator_user_id VARCHAR(256), + client_id VARCHAR(256) +); + diff --git a/openid-connect-server/db/tables/user_info.sql b/openid-connect-server/db/tables/user_info.sql new file mode 100644 index 000000000..21c7ef795 --- /dev/null +++ b/openid-connect-server/db/tables/user_info.sql @@ -0,0 +1,21 @@ +CREATE TABLE user_info ( + id BIGINT AUTO_INCREMENT PRIMARY KEY, + user_id VARCHAR(256), + preferred_username VARCHAR(256), + name VARCHAR(256), + given_name VARCHAR(256), + family_name VARCHAR(256), + middle_name VARCHAR(256), + nickname VARCHAR(256), + profile VARCHAR(256), + picture VARCHAR(256), + website VARCHAR(256), + email VARCHAR(256), + email_verified BOOLEAN, + gender VARCHAR(256), + zone_info VARCHAR(256), + locale VARCHAR(256), + phone_number VARCHAR(256), + address_id VARCHAR(256), + updated_time VARCHAR(256) +); \ No newline at end of file diff --git a/openid-connect-server/db/tables/userinfo.sql b/openid-connect-server/db/tables/userinfo.sql deleted file mode 100644 index c05f4e989..000000000 --- a/openid-connect-server/db/tables/userinfo.sql +++ /dev/null @@ -1,21 +0,0 @@ -CREATE TABLE userinfo ( - id BIGINT AUTO_INCREMENT PRIMARY KEY, - userId VARCHAR(256), - preferredUsername VARCHAR(256), - name VARCHAR(256), - givenName VARCHAR(256), - familyName VARCHAR(256), - middleName VARCHAR(256), - nickname VARCHAR(256), - profile VARCHAR(256), - picture VARCHAR(256), - website VARCHAR(256), - email VARCHAR(256), - emailVerified BOOLEAN, - gender VARCHAR(256), - zoneinfo VARCHAR(256), - locale VARCHAR(256), - phoneNumber VARCHAR(256), - address_id VARCHAR(256), - updatedTime VARCHAR(256) -); \ No newline at end of file