001/* 002 * (C) Copyright 2006-2013 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Nelson Silva <[email protected]> - initial API and implementation 018 * Nuxeo 019 */ 020package org.nuxeo.ecm.platform.oauth2.openid.auth; 021 022import java.util.Date; 023 024/** 025 * UserInfo Claims. OpenID Connect Basic Client Profile 1.0 - draft 24 026 * 027 * @see http://openid.net/specs/openid-connect-basic-1_0.html 028 */ 029public interface OpenIDUserInfo { 030 031 /** @return Subject - Identifier for the End-User at the Issuer. */ 032 String getSubject(); 033 034 /** 035 * @return End-User's full name in displayable form including all name parts, ordered according to End-User's locale 036 * and preferences 037 */ 038 String getName(); 039 040 /** @return Given name or first name of the End-User. */ 041 String getGivenName(); 042 043 /** @return Surname or last name of the End-User. */ 044 String getFamilyName(); 045 046 /** @return Middle name of the End-User. */ 047 String getMiddleName(); 048 049 /** @return Casual name of the End-User that may or may not be the same as the given_name. */ 050 String getNickname(); 051 052 /** @return Shorthand name that the End-User wishes to be referred to. */ 053 String getPreferredUsername(); 054 055 /** @return URL of the End-User's profile page. */ 056 String getProfile(); 057 058 /** @return URL of the End-User's profile picture. */ 059 String getPicture(); 060 061 /** @return URL of the End-User's web page or blog. */ 062 String getWebsite(); 063 064 /** @return End-User's preferred e-mail address. */ 065 String getEmail(); 066 067 /** @return True if the End-User's e-mail address has been verified; otherwise false. */ 068 boolean isEmailVerified(); 069 070 /** @return End-User's gender. (female or male). */ 071 String getGender(); 072 073 /** @return End-User's birthday */ 074 Date getBirthdate(); 075 076 /** @return String from zoneinfo time zone database representing the End-User's time zone. */ 077 String getZoneInfo(); 078 079 /** @return End-User's locale. */ 080 String getLocale(); 081 082 /** @return End-User's preferred telephone number. */ 083 String getPhoneNumber(); 084 085 /** @return End-User's preferred address. */ 086 String getAddress(); 087 088 /** @return Time the End-User's information was last updated. */ 089 Date getUpdatedTime(); 090 091}