001/* 002 * (C) Copyright 2006-2013 Nuxeo SA (http://nuxeo.com/) and contributors. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the GNU Lesser General Public License 006 * (LGPL) version 2.1 which accompanies this distribution, and is available at 007 * http://www.gnu.org/licenses/lgpl.html 008 * 009 * This library is distributed in the hope that it will be useful, 010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 * Lesser General Public License for more details. 013 * 014 * Contributors: 015 * Nelson Silva <nelson.silva@inevo.pt> - initial API and implementation 016 * Nuxeo 017 */ 018 019package org.nuxeo.ecm.platform.oauth2.openid.auth; 020 021import java.util.Date; 022import com.google.api.client.json.GenericJson; 023import com.google.api.client.util.DateTime; 024import com.google.api.client.util.Key; 025 026public class DefaultOpenIDUserInfo extends GenericJson implements OpenIDUserInfo { 027 028 @Key("sub") 029 protected String subject; 030 031 @Key("name") 032 protected String name; 033 034 @Key("given_name") 035 protected String givenName; 036 037 @Key("family_name") 038 protected String familyName; 039 040 @Key("middle_name") 041 protected String middleName; 042 043 @Key("nickname") 044 protected String nickname; 045 046 @Key("preferred_username") 047 protected String preferredUsername; 048 049 @Key("profile") 050 protected String profile; 051 052 @Key("picture") 053 protected String picture; 054 055 @Key("website") 056 protected String website; 057 058 @Key("email") 059 protected String email; 060 061 @Key("email_verified") 062 protected boolean emailVerified; 063 064 @Key("gender") 065 protected String gender; 066 067 @Key("birthdate") 068 protected Date birthdate; 069 070 @Key("zoneinfo") 071 protected String zoneInfo; 072 073 @Key("locale") 074 protected String locale; 075 076 @Key("phone_number") 077 protected String phoneNumber; 078 079 @Key("address") 080 protected String address; 081 082 @Key("updated_time") 083 protected String updatedTime; 084 085 @Override 086 public String getSubject() { 087 return subject; 088 } 089 090 @Override 091 public String getName() { 092 return name; 093 } 094 095 @Override 096 public String getGivenName() { 097 return givenName; 098 } 099 100 @Override 101 public String getFamilyName() { 102 return familyName; 103 } 104 105 @Override 106 public String getMiddleName() { 107 return middleName; 108 } 109 110 @Override 111 public String getNickname() { 112 return nickname; 113 } 114 115 @Override 116 public String getPreferredUsername() { 117 return preferredUsername; 118 } 119 120 @Override 121 public String getProfile() { 122 return profile; 123 } 124 125 @Override 126 public String getPicture() { 127 return picture; 128 } 129 130 @Override 131 public String getWebsite() { 132 return website; 133 } 134 135 @Override 136 public String getEmail() { 137 return email; 138 } 139 140 @Override 141 public boolean isEmailVerified() { 142 return emailVerified; 143 } 144 145 @Override 146 public String getGender() { 147 return gender; 148 } 149 150 @Override 151 public Date getBirthdate() { 152 return birthdate; 153 } 154 155 @Override 156 public String getZoneInfo() { 157 return zoneInfo; 158 } 159 160 @Override 161 public String getLocale() { 162 return locale; 163 } 164 165 @Override 166 public String getPhoneNumber() { 167 return phoneNumber; 168 } 169 170 @Override 171 public String getAddress() { 172 return address; 173 } 174 175 @Override 176 public Date getUpdatedTime() { 177 Date date; 178 try { 179 DateTime dateTime = DateTime.parseRfc3339(updatedTime); 180 date = new Date(dateTime.getValue()); 181 } catch (NumberFormatException e) { 182 return null; 183 } 184 return date; 185 } 186 187}