keycloak-oidc-service
公開メンバ関数 | 全メンバ一覧
org.keycloak.authentication.requiredactions.UpdateProfile クラス
org.keycloak.authentication.requiredactions.UpdateProfile の継承関係図
Inheritance graph
org.keycloak.authentication.requiredactions.UpdateProfile 連携図
Collaboration graph

公開メンバ関数

void evaluateTriggers (RequiredActionContext context)
 
void requiredActionChallenge (RequiredActionContext context)
 
void processAction (RequiredActionContext context)
 
void close ()
 
RequiredActionProvider create (KeycloakSession session)
 
RequiredActionProvider createDisplay (KeycloakSession session, String displayType)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
String getDisplayText ()
 
String getId ()
 
default boolean isOneTimeAction ()
 
default int order ()
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ close()

void org.keycloak.authentication.requiredactions.UpdateProfile.close ( )
inline

org.keycloak.provider.Providerを実装しています。

135  {
136 
137  }

◆ create()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdateProfile.create ( KeycloakSession  session)
inline

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

140  {
141  return this;
142  }

◆ createDisplay()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdateProfile.createDisplay ( KeycloakSession  session,
String  displayType 
)
inline

org.keycloak.authentication.DisplayTypeRequiredActionFactoryを実装しています。

146  {
147  if (displayType == null) return this;
148  if (!OAuth2Constants.DISPLAY_CONSOLE.equalsIgnoreCase(displayType)) return null;
149  return ConsoleUpdateProfile.SINGLETON;
150  }

◆ evaluateTriggers()

void org.keycloak.authentication.requiredactions.UpdateProfile.evaluateTriggers ( RequiredActionContext  context)
inline

org.keycloak.authentication.RequiredActionProviderを実装しています。

45  {
46  }

◆ getDisplayText()

String org.keycloak.authentication.requiredactions.UpdateProfile.getDisplayText ( )
inline

org.keycloak.authentication.RequiredActionFactoryを実装しています。

165  {
166  return "Update Profile";
167  }

◆ getId()

String org.keycloak.authentication.requiredactions.UpdateProfile.getId ( )
inline

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

171  {
173  }
Definition: UserModel.java:30
Definition: UserModel.java:123
UPDATE_PROFILE
Definition: UserModel.java:124

◆ init()

void org.keycloak.authentication.requiredactions.UpdateProfile.init ( Config.Scope  config)
inline

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

155  {
156 
157  }

◆ isOneTimeAction()

default boolean org.keycloak.authentication.RequiredActionFactory.isOneTimeAction ( )
inlineinherited

Flag indicating whether the execution of the required action by the same circumstances (e.g. by one and the same action token) should only be permitted once.

戻り値

org.keycloak.authentication.requiredactions.UpdatePassword, org.keycloak.authentication.requiredactions.UpdateTotpで実装されています。

44  {
45  return false;
46  }

◆ order()

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

org.keycloak.urls.HostnameProviderFactory, org.keycloak.protocol.oidc.ext.OIDCExtProviderFactoryで実装されています。

56  {
57  return 0;
58  }

◆ postInit()

void org.keycloak.authentication.requiredactions.UpdateProfile.postInit ( KeycloakSessionFactory  factory)
inline

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

160  {
161 
162  }

◆ processAction()

void org.keycloak.authentication.requiredactions.UpdateProfile.processAction ( RequiredActionContext  context)
inline

org.keycloak.authentication.RequiredActionProviderを実装しています。

56  {
57  EventBuilder event = context.getEvent();
58  event.event(EventType.UPDATE_PROFILE);
59  MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
60  UserModel user = context.getUser();
61  KeycloakSession session = context.getSession();
62  RealmModel realm = context.getRealm();
63 
64 
65  List<FormMessage> errors = Validation.validateUpdateProfileForm(realm, formData);
66  if (errors != null && !errors.isEmpty()) {
67  Response challenge = context.form()
68  .setErrors(errors)
69  .setFormData(formData)
71  context.challenge(challenge);
72  return;
73  }
74 
75  if (realm.isEditUsernameAllowed()) {
76  String username = formData.getFirst("username");
77  String oldUsername = user.getUsername();
78 
79  boolean usernameChanged = oldUsername != null ? !oldUsername.equals(username) : username != null;
80 
81  if (usernameChanged) {
82 
83  if (session.users().getUserByUsername(username, realm) != null) {
84  Response challenge = context.form()
86  .setFormData(formData)
88  context.challenge(challenge);
89  return;
90  }
91 
92  user.setUsername(username);
93  }
94 
95  }
96 
97  user.setFirstName(formData.getFirst("firstName"));
98  user.setLastName(formData.getFirst("lastName"));
99 
100  String email = formData.getFirst("email");
101 
102  String oldEmail = user.getEmail();
103  boolean emailChanged = oldEmail != null ? !oldEmail.equals(email) : email != null;
104 
105  if (emailChanged) {
106  if (!realm.isDuplicateEmailsAllowed()) {
107  UserModel userByEmail = session.users().getUserByEmail(email, realm);
108 
109  // check for duplicated email
110  if (userByEmail != null && !userByEmail.getId().equals(user.getId())) {
111  Response challenge = context.form()
113  .setFormData(formData)
115  context.challenge(challenge);
116  return;
117  }
118  }
119 
120  user.setEmail(email);
121  user.setEmailVerified(false);
122  }
123 
124  AttributeFormDataProcessor.process(formData, realm, user);
125 
126  if (emailChanged) {
127  event.clone().event(EventType.UPDATE_EMAIL).detail(Details.PREVIOUS_EMAIL, oldEmail).detail(Details.UPDATED_EMAIL, email).success();
128  }
129  context.success();
130 
131  }
void setUsername(String username)
Response createResponse(UserModel.RequiredAction action)
Definition: UserModel.java:30
Definition: Messages.java:22
Definition: UserModel.java:123
UserModel getUserByUsername(String username, RealmModel realm)
LoginFormsProvider setError(String message, Object ... parameters)
LoginFormsProvider setErrors(List< FormMessage > messages)
UPDATE_PROFILE
Definition: UserModel.java:124
LoginFormsProvider setFormData(MultivaluedMap< String, String > formData)
Event event
Definition: EventBuilder.java:44
void setEmail(String email)
static final String USERNAME_EXISTS
Definition: Messages.java:63
String UPDATED_EMAIL
Definition: Details.java:27
Definition: Details.java:23
String PREVIOUS_EMAIL
Definition: Details.java:26
static final String EMAIL_EXISTS
Definition: Messages.java:67
void setEmailVerified(boolean verified)
UserModel getUserByEmail(String email, RealmModel realm)
void setFirstName(String firstName)
Definition: EventBuilder.java:37
void setLastName(String lastName)
Definition: RealmModel.java:34
Definition: KeycloakSession.java:32

◆ requiredActionChallenge()

void org.keycloak.authentication.requiredactions.UpdateProfile.requiredActionChallenge ( RequiredActionContext  context)
inline

org.keycloak.authentication.RequiredActionProviderを実装しています。

49  {
50  Response challenge = context.form()
52  context.challenge(challenge);
53  }
Response createResponse(UserModel.RequiredAction action)
Definition: UserModel.java:30
Definition: UserModel.java:123
UPDATE_PROFILE
Definition: UserModel.java:124

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