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}