keycloak-service
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的関数 | 静的変数 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.protocol.oidc.OIDCLoginProtocolFactory クラス
org.keycloak.protocol.oidc.OIDCLoginProtocolFactory の継承関係図
Inheritance graph
org.keycloak.protocol.oidc.OIDCLoginProtocolFactory 連携図
Collaboration graph

公開メンバ関数

LoginProtocol create (KeycloakSession session)
 
Map< String, ProtocolMapperModel > getBuiltinMappers ()
 
Object createProtocolEndpoint (RealmModel realm, EventBuilder event)
 
String getId ()
 
void setupClientDefaults (ClientRepresentation rep, ClientModel newClient)
 

静的公開変数類

static final String USERNAME = "username"
 
static final String EMAIL = "email"
 
static final String EMAIL_VERIFIED = "email verified"
 
static final String GIVEN_NAME = "given name"
 
static final String FAMILY_NAME = "family name"
 
static final String MIDDLE_NAME = "middle name"
 
static final String NICKNAME = "nickname"
 
static final String PROFILE_CLAIM = "profile"
 
static final String PICTURE = "picture"
 
static final String WEBSITE = "website"
 
static final String GENDER = "gender"
 
static final String BIRTHDATE = "birthdate"
 
static final String ZONEINFO = "zoneinfo"
 
static final String UPDATED_AT = "updated at"
 
static final String FULL_NAME = "full name"
 
static final String LOCALE = "locale"
 
static final String ADDRESS = "address"
 
static final String PHONE_NUMBER = "phone number"
 
static final String PHONE_NUMBER_VERIFIED = "phone number verified"
 
static final String PROFILE_SCOPE_CONSENT_TEXT = "${profileScopeConsentText}"
 
static final String EMAIL_SCOPE_CONSENT_TEXT = "${emailScopeConsentText}"
 
static final String ADDRESS_SCOPE_CONSENT_TEXT = "${addressScopeConsentText}"
 
static final String PHONE_SCOPE_CONSENT_TEXT = "${phoneScopeConsentText}"
 
static final String OFFLINE_ACCESS_SCOPE_CONSENT_TEXT = Constants.OFFLINE_ACCESS_SCOPE_CONSENT_TEXT
 

限定公開メンバ関数

void createDefaultClientScopesImpl (RealmModel newRealm)
 
void addDefaults (ClientModel client)
 

静的関数

 [static initializer]
 

静的変数

static Map< String, ProtocolMapperModel > builtins = new HashMap<>()
 

静的非公開メンバ関数

static void createUserAttributeMapper (String name, String attrName, String claimName, String type)
 

静的非公開変数類

static final Logger logger = Logger.getLogger(OIDCLoginProtocolFactory.class)
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ [static initializer]()

org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.[static initializer] ( )
inlinestaticpackage

◆ addDefaults()

void org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.addDefaults ( ClientModel  client)
inlineprotected
230  {
231  }

◆ create()

LoginProtocol org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.create ( KeycloakSession  session)
inline
90  {
91  return new OIDCLoginProtocol().setSession(session);
92  }

◆ createDefaultClientScopesImpl()

void org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.createDefaultClientScopesImpl ( RealmModel  newRealm)
inlineprotected
169  {
170  //name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, and updated_at.
171  ClientScopeModel profileScope = newRealm.addClientScope(OAuth2Constants.SCOPE_PROFILE);
172  profileScope.setDescription("OpenID Connect built-in scope: profile");
173  profileScope.setDisplayOnConsentScreen(true);
174  profileScope.setConsentScreenText(PROFILE_SCOPE_CONSENT_TEXT);
175  profileScope.setProtocol(getId());
176  profileScope.addProtocolMapper(builtins.get(FULL_NAME));
177  profileScope.addProtocolMapper(builtins.get(FAMILY_NAME));
178  profileScope.addProtocolMapper(builtins.get(GIVEN_NAME));
179  profileScope.addProtocolMapper(builtins.get(MIDDLE_NAME));
180  profileScope.addProtocolMapper(builtins.get(NICKNAME));
181  profileScope.addProtocolMapper(builtins.get(USERNAME));
182  profileScope.addProtocolMapper(builtins.get(PROFILE_CLAIM));
183  profileScope.addProtocolMapper(builtins.get(PICTURE));
184  profileScope.addProtocolMapper(builtins.get(WEBSITE));
185  profileScope.addProtocolMapper(builtins.get(GENDER));
186  profileScope.addProtocolMapper(builtins.get(BIRTHDATE));
187  profileScope.addProtocolMapper(builtins.get(ZONEINFO));
188  profileScope.addProtocolMapper(builtins.get(LOCALE));
189  profileScope.addProtocolMapper(builtins.get(UPDATED_AT));
190 
191  ClientScopeModel emailScope = newRealm.addClientScope(OAuth2Constants.SCOPE_EMAIL);
192  emailScope.setDescription("OpenID Connect built-in scope: email");
193  emailScope.setDisplayOnConsentScreen(true);
194  emailScope.setConsentScreenText(EMAIL_SCOPE_CONSENT_TEXT);
195  emailScope.setProtocol(getId());
196  emailScope.addProtocolMapper(builtins.get(EMAIL));
197  emailScope.addProtocolMapper(builtins.get(EMAIL_VERIFIED));
198 
199  ClientScopeModel addressScope = newRealm.addClientScope(OAuth2Constants.SCOPE_ADDRESS);
200  addressScope.setDescription("OpenID Connect built-in scope: address");
201  addressScope.setDisplayOnConsentScreen(true);
202  addressScope.setConsentScreenText(ADDRESS_SCOPE_CONSENT_TEXT);
203  addressScope.setProtocol(getId());
204  addressScope.addProtocolMapper(builtins.get(ADDRESS));
205 
206  ClientScopeModel phoneScope = newRealm.addClientScope(OAuth2Constants.SCOPE_PHONE);
207  phoneScope.setDescription("OpenID Connect built-in scope: phone");
208  phoneScope.setDisplayOnConsentScreen(true);
209  phoneScope.setConsentScreenText(PHONE_SCOPE_CONSENT_TEXT);
210  phoneScope.setProtocol(getId());
211  phoneScope.addProtocolMapper(builtins.get(PHONE_NUMBER));
212  phoneScope.addProtocolMapper(builtins.get(PHONE_NUMBER_VERIFIED));
213 
214  // 'profile' and 'email' will be default scopes for now. 'address' and 'phone' will be optional scopes
215  newRealm.addDefaultClientScope(profileScope, true);
216  newRealm.addDefaultClientScope(emailScope, true);
217  newRealm.addDefaultClientScope(addressScope, false);
218  newRealm.addDefaultClientScope(phoneScope, false);
219 
220  RoleModel offlineRole = newRealm.getRole(OAuth2Constants.OFFLINE_ACCESS);
221  if (offlineRole != null) {
222  ClientScopeModel offlineAccessScope = KeycloakModelUtils.getClientScopeByName(newRealm, OAuth2Constants.OFFLINE_ACCESS);
223  if (offlineAccessScope == null) {
224  DefaultClientScopes.createOfflineAccessClientScope(newRealm, offlineRole);
225  }
226  }
227  }
static final String PHONE_NUMBER
Definition: OIDCLoginProtocolFactory.java:79
static final String UPDATED_AT
Definition: OIDCLoginProtocolFactory.java:75
static final String PROFILE_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:82
static final String ADDRESS
Definition: OIDCLoginProtocolFactory.java:78
static final String FAMILY_NAME
Definition: OIDCLoginProtocolFactory.java:66
static final String GIVEN_NAME
Definition: OIDCLoginProtocolFactory.java:65
static final String USERNAME
Definition: OIDCLoginProtocolFactory.java:62
static final String ADDRESS_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:84
static Map< String, ProtocolMapperModel > builtins
Definition: OIDCLoginProtocolFactory.java:99
static final String MIDDLE_NAME
Definition: OIDCLoginProtocolFactory.java:67
static final String EMAIL_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:83
static final String FULL_NAME
Definition: OIDCLoginProtocolFactory.java:76
static final String BIRTHDATE
Definition: OIDCLoginProtocolFactory.java:73
static final String PROFILE_CLAIM
Definition: OIDCLoginProtocolFactory.java:69
String getId()
Definition: OIDCLoginProtocolFactory.java:239
static final String GENDER
Definition: OIDCLoginProtocolFactory.java:72
static final String EMAIL
Definition: OIDCLoginProtocolFactory.java:63
static final String ZONEINFO
Definition: OIDCLoginProtocolFactory.java:74
static final String PHONE_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:85
static final String NICKNAME
Definition: OIDCLoginProtocolFactory.java:68
static final String LOCALE
Definition: OIDCLoginProtocolFactory.java:77
static final String EMAIL_VERIFIED
Definition: OIDCLoginProtocolFactory.java:64
static final String PHONE_NUMBER_VERIFIED
Definition: OIDCLoginProtocolFactory.java:80
static final String PICTURE
Definition: OIDCLoginProtocolFactory.java:70
static final String WEBSITE
Definition: OIDCLoginProtocolFactory.java:71

◆ createProtocolEndpoint()

Object org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.createProtocolEndpoint ( RealmModel  realm,
EventBuilder  event 
)
inline
234  {
235  return new OIDCLoginProtocolService(realm, event);
236  }

◆ createUserAttributeMapper()

static void org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.createUserAttributeMapper ( String  name,
String  attrName,
String  claimName,
String  type 
)
inlinestaticprivate
160  {
161  ProtocolMapperModel model = UserAttributeMapper.createClaimMapper(name,
162  attrName,
163  claimName, type,
164  true, true, false);
165  builtins.put(name, model);
166  }
static Map< String, ProtocolMapperModel > builtins
Definition: OIDCLoginProtocolFactory.java:99

◆ getBuiltinMappers()

Map<String, ProtocolMapperModel> org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.getBuiltinMappers ( )
inline
95  {
96  return builtins;
97  }
static Map< String, ProtocolMapperModel > builtins
Definition: OIDCLoginProtocolFactory.java:99

◆ getId()

String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.getId ( )
inline
239  {
240  return OIDCLoginProtocol.LOGIN_PROTOCOL;
241  }

◆ setupClientDefaults()

void org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.setupClientDefaults ( ClientRepresentation  rep,
ClientModel  newClient 
)
inline
244  {
245  if (rep.getRootUrl() != null && (rep.getRedirectUris() == null || rep.getRedirectUris().isEmpty())) {
246  String root = rep.getRootUrl();
247  if (root.endsWith("/")) root = root + "*";
248  else root = root + "/*";
249  newClient.addRedirectUri(root);
250 
251  Set<String> origins = new HashSet<String>();
252  String origin = UriUtils.getOrigin(root);
253  logger.debugv("adding default client origin: {0}" , origin);
254  origins.add(origin);
255  newClient.setWebOrigins(origins);
256  }
257  if (rep.isBearerOnly() == null
258  && rep.isPublicClient() == null) {
259  newClient.setPublicClient(true);
260  }
261  if (rep.isBearerOnly() == null) newClient.setBearerOnly(false);
262  if (rep.getAdminUrl() == null && rep.getRootUrl() != null) {
263  newClient.setManagementUrl(rep.getRootUrl());
264  }
265 
266 
267  // Backwards compatibility only
268  if (rep.isDirectGrantsOnly() != null) {
269  ServicesLogger.LOGGER.usingDeprecatedDirectGrantsOnly();
270  newClient.setStandardFlowEnabled(!rep.isDirectGrantsOnly());
271  newClient.setDirectAccessGrantsEnabled(rep.isDirectGrantsOnly());
272  } else {
273  if (rep.isStandardFlowEnabled() == null) newClient.setStandardFlowEnabled(true);
274  if (rep.isDirectAccessGrantsEnabled() == null) newClient.setDirectAccessGrantsEnabled(true);
275 
276  }
277 
278  if (rep.isImplicitFlowEnabled() == null) newClient.setImplicitFlowEnabled(false);
279  if (rep.isPublicClient() == null) newClient.setPublicClient(true);
280  if (rep.isFrontchannelLogout() == null) newClient.setFrontchannelLogout(false);
281  }
static final Logger logger
Definition: OIDCLoginProtocolFactory.java:60

メンバ詳解

◆ ADDRESS

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.ADDRESS = "address"
static

◆ ADDRESS_SCOPE_CONSENT_TEXT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.ADDRESS_SCOPE_CONSENT_TEXT = "${addressScopeConsentText}"
static

◆ BIRTHDATE

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.BIRTHDATE = "birthdate"
static

◆ builtins

Map<String, ProtocolMapperModel> org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.builtins = new HashMap<>()
staticpackage

◆ EMAIL

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.EMAIL = "email"
static

◆ EMAIL_SCOPE_CONSENT_TEXT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.EMAIL_SCOPE_CONSENT_TEXT = "${emailScopeConsentText}"
static

◆ EMAIL_VERIFIED

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.EMAIL_VERIFIED = "email verified"
static

◆ FAMILY_NAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.FAMILY_NAME = "family name"
static

◆ FULL_NAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.FULL_NAME = "full name"
static

◆ GENDER

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.GENDER = "gender"
static

◆ GIVEN_NAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.GIVEN_NAME = "given name"
static

◆ LOCALE

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.LOCALE = "locale"
static

◆ logger

final Logger org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.logger = Logger.getLogger(OIDCLoginProtocolFactory.class)
staticprivate

◆ MIDDLE_NAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.MIDDLE_NAME = "middle name"
static

◆ NICKNAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.NICKNAME = "nickname"
static

◆ OFFLINE_ACCESS_SCOPE_CONSENT_TEXT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.OFFLINE_ACCESS_SCOPE_CONSENT_TEXT = Constants.OFFLINE_ACCESS_SCOPE_CONSENT_TEXT
static

◆ PHONE_NUMBER

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PHONE_NUMBER = "phone number"
static

◆ PHONE_NUMBER_VERIFIED

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PHONE_NUMBER_VERIFIED = "phone number verified"
static

◆ PHONE_SCOPE_CONSENT_TEXT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PHONE_SCOPE_CONSENT_TEXT = "${phoneScopeConsentText}"
static

◆ PICTURE

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PICTURE = "picture"
static

◆ PROFILE_CLAIM

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PROFILE_CLAIM = "profile"
static

◆ PROFILE_SCOPE_CONSENT_TEXT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.PROFILE_SCOPE_CONSENT_TEXT = "${profileScopeConsentText}"
static

◆ UPDATED_AT

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.UPDATED_AT = "updated at"
static

◆ USERNAME

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.USERNAME = "username"
static

◆ WEBSITE

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.WEBSITE = "website"
static

◆ ZONEINFO

final String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.ZONEINFO = "zoneinfo"
static

このクラス詳解は次のファイルから抽出されました: