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 */ 018package org.nuxeo.ecm.platform.oauth2.openid.auth; 019 020import java.util.Date; 021 022/** 023 * UserInfo Claims. OpenID Connect Basic Client Profile 1.0 - draft 24 024 * 025 * @see http://openid.net/specs/openid-connect-basic-1_0.html 026 */ 027public interface OpenIDUserInfo { 028 029 /** @return Subject - Identifier for the End-User at the Issuer. */ 030 String getSubject(); 031 032 /** 033 * @return End-User's full name in displayable form including all name parts, ordered according to End-User's locale 034 * and preferences 035 */ 036 String getName(); 037 038 /** @return Given name or first name of the End-User. */ 039 String getGivenName(); 040 041 /** @return Surname or last name of the End-User. */ 042 String getFamilyName(); 043 044 /** @return Middle name of the End-User. */ 045 String getMiddleName(); 046 047 /** @return Casual name of the End-User that may or may not be the same as the given_name. */ 048 String getNickname(); 049 050 /** @return Shorthand name that the End-User wishes to be referred to. */ 051 String getPreferredUsername(); 052 053 /** @return URL of the End-User's profile page. */ 054 String getProfile(); 055 056 /** @return URL of the End-User's profile picture. */ 057 String getPicture(); 058 059 /** @return URL of the End-User's web page or blog. */ 060 String getWebsite(); 061 062 /** @return End-User's preferred e-mail address. */ 063 String getEmail(); 064 065 /** @return True if the End-User's e-mail address has been verified; otherwise false. */ 066 boolean isEmailVerified(); 067 068 /** @return End-User's gender. (female or male). */ 069 String getGender(); 070 071 /** @return End-User's birthday */ 072 Date getBirthdate(); 073 074 /** @return String from zoneinfo time zone database representing the End-User's time zone. */ 075 String getZoneInfo(); 076 077 /** @return End-User's locale. */ 078 String getLocale(); 079 080 /** @return End-User's preferred telephone number. */ 081 String getPhoneNumber(); 082 083 /** @return End-User's preferred address. */ 084 String getAddress(); 085 086 /** @return Time the End-User's information was last updated. */ 087 Date getUpdatedTime(); 088 089}