keycloak-service
静的公開メンバ関数 | 全メンバ一覧
org.keycloak.forms.login.freemarker.LoginFormsUtil クラス
org.keycloak.forms.login.freemarker.LoginFormsUtil 連携図
Collaboration graph

静的公開メンバ関数

static List< IdentityProviderModel > filterIdentityProviders (List< IdentityProviderModel > providers, KeycloakSession session, RealmModel realm, Map< String, Object > attributes, MultivaluedMap< String, String > formData)
 

詳解

Various util methods, so the logic is not hardcoded in freemarker beans

著者
Marek Posolda

関数詳解

◆ filterIdentityProviders()

static List<IdentityProviderModel> org.keycloak.forms.login.freemarker.LoginFormsUtil.filterIdentityProviders ( List< IdentityProviderModel >  providers,
KeycloakSession  session,
RealmModel  realm,
Map< String, Object >  attributes,
MultivaluedMap< String, String >  formData 
)
inlinestatic
43  {
44 
45  Boolean usernameEditDisabled = (Boolean) attributes.get(LoginFormsProvider.USERNAME_EDIT_DISABLED);
46  if (usernameEditDisabled != null && usernameEditDisabled) {
47  String username = formData.getFirst(UserModel.USERNAME);
48  if (username == null) {
49  throw new IllegalStateException("USERNAME_EDIT_DISABLED but username not known");
50  }
51 
52  UserModel user = session.users().getUserByUsername(username, realm);
53  if (user == null || !user.isEnabled()) {
54  throw new IllegalStateException("User " + username + " not found or disabled");
55  }
56 
57  Set<FederatedIdentityModel> fedLinks = session.users().getFederatedIdentities(user, realm);
58  Set<String> federatedIdentities = new HashSet<>();
59  for (FederatedIdentityModel fedLink : fedLinks) {
60  federatedIdentities.add(fedLink.getIdentityProvider());
61  }
62 
63  List<IdentityProviderModel> result = new LinkedList<>();
64  for (IdentityProviderModel idp : providers) {
65  if (federatedIdentities.contains(idp.getAlias())) {
66  result.add(idp);
67  }
68  }
69  return result;
70  } else {
71  return providers;
72  }
73  }

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