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

公開メンバ関数

void requiredActionChallenge (RequiredActionContext context)
 
void processAction (RequiredActionContext context)
 
void evaluateTriggers (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 ()
 
boolean isOneTimeAction ()
 

静的公開変数類

static final ConsoleUpdatePassword SINGLETON = new ConsoleUpdatePassword()
 
static final String PASSWORD_NEW = "password-new"
 
static final String PASSWORD_CONFIRM = "password-confirm"
 

限定公開メンバ関数

ConsoleDisplayMode challenge (RequiredActionContext context)
 

静的非公開変数類

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

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ challenge()

ConsoleDisplayMode org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.challenge ( RequiredActionContext  context)
inlineprotected
43  {
44  return ConsoleDisplayMode.challenge(context)
45  .header()
46  .param(PASSWORD_NEW)
47  .label("console-new-password")
48  .mask(true)
49  .param(PASSWORD_CONFIRM)
50  .label("console-confirm-password")
51  .mask(true)
52  .challenge();
53  }
static final String PASSWORD_CONFIRM
Definition: ConsoleUpdatePassword.java:41
static final String PASSWORD_NEW
Definition: ConsoleUpdatePassword.java:40

◆ close()

void org.keycloak.authentication.requiredactions.UpdatePassword.close ( )
inlineinherited
135  {
136 
137  }

◆ create()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdatePassword.create ( KeycloakSession  session)
inlineinherited
140  {
141  return this;
142  }

◆ createDisplay()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdatePassword.createDisplay ( KeycloakSession  session,
String  displayType 
)
inlineinherited
146  {
147  if (displayType == null) return this;
148  if (!OAuth2Constants.DISPLAY_CONSOLE.equalsIgnoreCase(displayType)) return null;
149  return ConsoleUpdatePassword.SINGLETON;
150  }

◆ evaluateTriggers()

void org.keycloak.authentication.requiredactions.UpdatePassword.evaluateTriggers ( RequiredActionContext  context)
inlineinherited
52  {
53  int daysToExpirePassword = context.getRealm().getPasswordPolicy().getDaysToExpirePassword();
54  if(daysToExpirePassword != -1) {
55  PasswordCredentialProvider passwordProvider = (PasswordCredentialProvider)context.getSession().getProvider(CredentialProvider.class, PasswordCredentialProviderFactory.PROVIDER_ID);
56  CredentialModel password = passwordProvider.getPassword(context.getRealm(), context.getUser());
57  if (password != null) {
58  if(password.getCreatedDate() == null) {
59  context.getUser().addRequiredAction(UserModel.RequiredAction.UPDATE_PASSWORD);
60  logger.debug("User is required to update password");
61  } else {
62  long timeElapsed = Time.toMillis(Time.currentTime()) - password.getCreatedDate();
63  long timeToExpire = TimeUnit.DAYS.toMillis(daysToExpirePassword);
64 
65  if(timeElapsed > timeToExpire) {
66  context.getUser().addRequiredAction(UserModel.RequiredAction.UPDATE_PASSWORD);
67  logger.debug("User is required to update password");
68  }
69  }
70  }
71  }
72  }
static final Logger logger
Definition: UpdatePassword.java:50

◆ getDisplayText()

String org.keycloak.authentication.requiredactions.UpdatePassword.getDisplayText ( )
inlineinherited
164  {
165  return "Update Password";
166  }

◆ getId()

String org.keycloak.authentication.requiredactions.UpdatePassword.getId ( )
inlineinherited
170  {
171  return UserModel.RequiredAction.UPDATE_PASSWORD.name();
172  }

◆ init()

void org.keycloak.authentication.requiredactions.UpdatePassword.init ( Config.Scope  config)
inlineinherited
154  {
155 
156  }

◆ isOneTimeAction()

boolean org.keycloak.authentication.requiredactions.UpdatePassword.isOneTimeAction ( )
inlineinherited
175  {
176  return true;
177  }

◆ postInit()

void org.keycloak.authentication.requiredactions.UpdatePassword.postInit ( KeycloakSessionFactory  factory)
inlineinherited
159  {
160 
161  }

◆ processAction()

void org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.processAction ( RequiredActionContext  context)
inline
64  {
65  EventBuilder event = context.getEvent();
66  MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
67  event.event(EventType.UPDATE_PASSWORD);
68  String passwordNew = formData.getFirst(PASSWORD_NEW);
69  String passwordConfirm = formData.getFirst(PASSWORD_CONFIRM);
70 
71  EventBuilder errorEvent = event.clone().event(EventType.UPDATE_PASSWORD_ERROR)
72  .client(context.getAuthenticationSession().getClient())
73  .user(context.getAuthenticationSession().getAuthenticatedUser());
74 
75  if (Validation.isBlank(passwordNew)) {
76  context.challenge(challenge(context).message(Messages.MISSING_PASSWORD));
77  errorEvent.error(Errors.PASSWORD_MISSING);
78  return;
79  } else if (!passwordNew.equals(passwordConfirm)) {
80  context.challenge(challenge(context).message(Messages.NOTMATCH_PASSWORD));
81  errorEvent.error(Errors.PASSWORD_CONFIRM_ERROR);
82  return;
83  }
84 
85  try {
86  context.getSession().userCredentialManager().updateCredential(context.getRealm(), context.getUser(), UserCredentialModel.password(passwordNew, false));
87  context.success();
88  } catch (ModelException me) {
89  errorEvent.detail(Details.REASON, me.getMessage()).error(Errors.PASSWORD_REJECTED);
90  context.challenge(challenge(context).text(me.getMessage()));
91  return;
92  } catch (Exception ape) {
93  errorEvent.detail(Details.REASON, ape.getMessage()).error(Errors.PASSWORD_REJECTED);
94  context.challenge(challenge(context).text(ape.getMessage()));
95  return;
96  }
97  }
Definition: Messages.java:22
static final String PASSWORD_CONFIRM
Definition: ConsoleUpdatePassword.java:41
static final String NOTMATCH_PASSWORD
Definition: Messages.java:55
static final String MISSING_PASSWORD
Definition: Messages.java:51
static final String PASSWORD_NEW
Definition: ConsoleUpdatePassword.java:40
ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleUpdatePassword.java:43

◆ requiredActionChallenge()

void org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.requiredActionChallenge ( RequiredActionContext  context)
inline
58  {
59  context.challenge(
60  challenge(context).message("console-update-password"));
61  }
ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleUpdatePassword.java:43

メンバ詳解

◆ logger

final Logger org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.logger = Logger.getLogger(ConsoleUpdatePassword.class)
staticprivate

◆ PASSWORD_CONFIRM

final String org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.PASSWORD_CONFIRM = "password-confirm"
static

◆ PASSWORD_NEW

final String org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.PASSWORD_NEW = "password-new"
static

◆ SINGLETON

final ConsoleUpdatePassword org.keycloak.authentication.requiredactions.ConsoleUpdatePassword.SINGLETON = new ConsoleUpdatePassword()
static

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