keycloak
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的関数 | 静的変数 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
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, ProtocolMapperModelgetBuiltinMappers ()
 
Object createProtocolEndpoint (RealmModel realm, EventBuilder event)
 
String getId ()
 
void setupClientDefaults (ClientRepresentation rep, ClientModel newClient)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
void createDefaultClientScopes (RealmModel newRealm, boolean addScopesToExistingClients)
 
void close ()
 
default int order ()
 

静的公開変数類

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)
 
void addDefaultClientScopes (RealmModel realm, ClientModel newClient)
 

静的関数

 [static initializer]
 

静的変数

static Map< String, ProtocolMapperModelbuiltins = 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

◆ addDefaultClientScopes()

void org.keycloak.protocol.AbstractLoginProtocolFactory.addDefaultClientScopes ( RealmModel  realm,
ClientModel  newClient 
)
inlineprotectedinherited
71  {
72  for (ClientScopeModel clientScope : realm.getDefaultClientScopes(true)) {
73  if (getId().equals(clientScope.getProtocol())) {
74  newClient.addClientScope(clientScope, true);
75  }
76  }
77  for (ClientScopeModel clientScope : realm.getDefaultClientScopes(false)) {
78  if (getId().equals(clientScope.getProtocol())) {
79  newClient.addClientScope(clientScope, false);
80  }
81  }
82  }

◆ addDefaults()

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

◆ close()

void org.keycloak.protocol.AbstractLoginProtocolFactory.close ( )
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

87  {
88 
89  }

◆ create()

LoginProtocol org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.create ( KeycloakSession  session)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

90  {
91  return new OIDCLoginProtocol().setSession(session);
92  }

◆ createDefaultClientScopes()

void org.keycloak.protocol.AbstractLoginProtocolFactory.createDefaultClientScopes ( RealmModel  newRealm,
boolean  addScopesToExistingClients 
)
inlineinherited

org.keycloak.protocol.LoginProtocolFactoryを実装しています。

54  {
56 
57  // Create default client scopes for realm built-in clients too
58  if (addScopesToExistingClients) {
59  for (ClientModel client : newRealm.getClients()) {
60  addDefaultClientScopes(newRealm, client);
61  }
62  }
63  }
abstract void createDefaultClientScopesImpl(RealmModel newRealm)
void addDefaultClientScopes(RealmModel realm, ClientModel newClient)
Definition: AbstractLoginProtocolFactory.java:71

◆ 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 PROFILE_CLAIM
Definition: OIDCLoginProtocolFactory.java:69
static final String BIRTHDATE
Definition: OIDCLoginProtocolFactory.java:73
static final String PHONE_NUMBER
Definition: OIDCLoginProtocolFactory.java:79
static Map< String, ProtocolMapperModel > builtins
Definition: OIDCLoginProtocolFactory.java:99
static final String MIDDLE_NAME
Definition: OIDCLoginProtocolFactory.java:67
static final String EMAIL
Definition: OIDCLoginProtocolFactory.java:63
static final String NICKNAME
Definition: OIDCLoginProtocolFactory.java:68
static final String PICTURE
Definition: OIDCLoginProtocolFactory.java:70
static final String LOCALE
Definition: OIDCLoginProtocolFactory.java:77
static final String ADDRESS
Definition: OIDCLoginProtocolFactory.java:78
static final String FULL_NAME
Definition: OIDCLoginProtocolFactory.java:76
static final String UPDATED_AT
Definition: OIDCLoginProtocolFactory.java:75
static final String GENDER
Definition: OIDCLoginProtocolFactory.java:72
static final String PROFILE_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:82
String getId()
Definition: OIDCLoginProtocolFactory.java:239
static final String FAMILY_NAME
Definition: OIDCLoginProtocolFactory.java:66
static final String EMAIL_VERIFIED
Definition: OIDCLoginProtocolFactory.java:64
static final String ZONEINFO
Definition: OIDCLoginProtocolFactory.java:74
static final String GIVEN_NAME
Definition: OIDCLoginProtocolFactory.java:65
static final String USERNAME
Definition: OIDCLoginProtocolFactory.java:62
static final String PHONE_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:85
static final String PHONE_NUMBER_VERIFIED
Definition: OIDCLoginProtocolFactory.java:80
static final String ADDRESS_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:84
static final String WEBSITE
Definition: OIDCLoginProtocolFactory.java:71
static final String EMAIL_SCOPE_CONSENT_TEXT
Definition: OIDCLoginProtocolFactory.java:83

◆ createProtocolEndpoint()

Object org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.createProtocolEndpoint ( RealmModel  realm,
EventBuilder  event 
)
inline

org.keycloak.protocol.LoginProtocolFactoryを実装しています。

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

org.keycloak.protocol.LoginProtocolFactoryを実装しています。

95  {
96  return builtins;
97  }
static Map< String, ProtocolMapperModel > builtins
Definition: OIDCLoginProtocolFactory.java:99

◆ getId()

String org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

239  {
240  return OIDCLoginProtocol.LOGIN_PROTOCOL;
241  }

◆ init()

void org.keycloak.protocol.AbstractLoginProtocolFactory.init ( Config.Scope  config)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

35  {
36  }

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

void org.keycloak.protocol.AbstractLoginProtocolFactory.postInit ( KeycloakSessionFactory  factory)
inlineinherited

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

39  {
40  factory.register(new ProviderEventListener() {
41  @Override
42  public void onEvent(ProviderEvent event) {
43  if (event instanceof RealmModel.ClientCreationEvent) {
44  ClientModel client = ((RealmModel.ClientCreationEvent)event).getCreatedClient();
45  addDefaultClientScopes(client.getRealm(), client);
46  addDefaults(client);
47  }
48  }
49  });
50  }
abstract void addDefaults(ClientModel realm)
void addDefaultClientScopes(RealmModel realm, ClientModel newClient)
Definition: AbstractLoginProtocolFactory.java:71

◆ setupClientDefaults()

void org.keycloak.protocol.oidc.OIDCLoginProtocolFactory.setupClientDefaults ( ClientRepresentation  rep,
ClientModel  newClient 
)
inline

org.keycloak.protocol.LoginProtocolFactoryを実装しています。

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

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