keycloak
公開メンバ関数 | 全メンバ一覧
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  }
Definition: OAuth2Constants.java:23
String DISPLAY_CONSOLE
Definition: OAuth2Constants.java:119

◆ 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

◆ 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  }
Definition: UserModel.java:30
LoginFormsProvider setFormData(MultivaluedMap< String, String > formData)
LoginFormsProvider setError(String message, Object ... parameters)
static final String USERNAME_EXISTS
Definition: Messages.java:63
void setEmail(String email)
LoginFormsProvider setErrors(List< FormMessage > messages)
Definition: Messages.java:22
Definition: UserModel.java:123
void setFirstName(String firstName)
String UPDATED_EMAIL
Definition: Details.java:27
void setUsername(String username)
UPDATE_PROFILE
Definition: UserModel.java:124
void setEmailVerified(boolean verified)
Response createResponse(UserModel.RequiredAction action)
Event event
Definition: EventBuilder.java:44
UserModel getUserByEmail(String email, RealmModel realm)
static final String EMAIL_EXISTS
Definition: Messages.java:67
Definition: EventBuilder.java:37
String PREVIOUS_EMAIL
Definition: Details.java:26
UserModel getUserByUsername(String username, RealmModel realm)
Definition: Details.java:23
void setLastName(String lastName)
Definition: KeycloakSession.java:32
Definition: RealmModel.java:34

◆ 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  }
Definition: UserModel.java:30
Definition: UserModel.java:123
UPDATE_PROFILE
Definition: UserModel.java:124
Response createResponse(UserModel.RequiredAction action)

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