keycloak
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
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 ()
 
default int order ()
 

静的公開変数類

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()
47  .label("console-new-password")
48  .mask(true)
49  .param(PASSWORD_CONFIRM)
50  .label("console-confirm-password")
51  .mask(true)
52  .challenge();
53  }
ParamBuilder param
Definition: ConsoleDisplayMode.java:227
static final String PASSWORD_CONFIRM
Definition: ConsoleUpdatePassword.java:41
static final String PASSWORD_NEW
Definition: ConsoleUpdatePassword.java:40
static ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleDisplayMode.java:81
HeaderBuilder header
Definition: ConsoleDisplayMode.java:128
Definition: ConsoleDisplayMode.java:38

◆ close()

void org.keycloak.authentication.requiredactions.UpdatePassword.close ( )
inlineinherited

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

135  {
136 
137  }

◆ create()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdatePassword.create ( KeycloakSession  session)
inlineinherited

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

140  {
141  return this;
142  }

◆ createDisplay()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdatePassword.createDisplay ( KeycloakSession  session,
String  displayType 
)
inlineinherited

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

146  {
147  if (displayType == null) return this;
148  if (!OAuth2Constants.DISPLAY_CONSOLE.equalsIgnoreCase(displayType)) return null;
149  return ConsoleUpdatePassword.SINGLETON;
150  }
Definition: OAuth2Constants.java:23
String DISPLAY_CONSOLE
Definition: OAuth2Constants.java:119

◆ evaluateTriggers()

void org.keycloak.authentication.requiredactions.UpdatePassword.evaluateTriggers ( RequiredActionContext  context)
inlineinherited

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

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) {
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) {
67  logger.debug("User is required to update password");
68  }
69  }
70  }
71  }
72  }
Definition: UserModel.java:30
static int currentTime()
Definition: Time.java:33
UPDATE_PASSWORD
Definition: UserModel.java:124
PasswordPolicy getPasswordPolicy()
Definition: UserModel.java:123
void addRequiredAction(String action)
< T extends Provider > T getProvider(Class< T > clazz)
static long toMillis(int time)
Definition: Time.java:68
int getDaysToExpirePassword()
Definition: PasswordPolicy.java:98
static final Logger logger
Definition: UpdatePassword.java:50
Definition: Time.java:25

◆ getDisplayText()

String org.keycloak.authentication.requiredactions.UpdatePassword.getDisplayText ( )
inlineinherited

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

164  {
165  return "Update Password";
166  }

◆ getId()

String org.keycloak.authentication.requiredactions.UpdatePassword.getId ( )
inlineinherited

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

170  {
172  }
Definition: UserModel.java:30
UPDATE_PASSWORD
Definition: UserModel.java:124
Definition: UserModel.java:123

◆ init()

void org.keycloak.authentication.requiredactions.UpdatePassword.init ( Config.Scope  config)
inlineinherited

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

154  {
155 
156  }

◆ isOneTimeAction()

boolean org.keycloak.authentication.requiredactions.UpdatePassword.isOneTimeAction ( )
inlineinherited

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

175  {
176  return true;
177  }

◆ order()

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

◆ postInit()

void org.keycloak.authentication.requiredactions.UpdatePassword.postInit ( KeycloakSessionFactory  factory)
inlineinherited

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

159  {
160 
161  }

◆ processAction()

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

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

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())
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));
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  }
ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleUpdatePassword.java:43
Definition: UserCredentialModel.java:32
String PASSWORD_MISSING
Definition: Errors.java:80
String REASON
Definition: Details.java:47
static final String NOTMATCH_PASSWORD
Definition: Messages.java:55
UserCredentialManager userCredentialManager()
void error(String error)
Definition: EventBuilder.java:160
static final String PASSWORD_CONFIRM
Definition: ConsoleUpdatePassword.java:41
static PasswordUserCredentialModel password(String password)
Definition: UserCredentialModel.java:55
AuthenticationSessionModel getAuthenticationSession()
static final String PASSWORD_NEW
Definition: ConsoleUpdatePassword.java:40
String PASSWORD_REJECTED
Definition: Errors.java:81
String PASSWORD_CONFIRM_ERROR
Definition: Errors.java:79
Definition: Messages.java:22
void updateCredential(RealmModel realm, UserModel user, CredentialInput input)
static final String MISSING_PASSWORD
Definition: Messages.java:51
EventBuilder detail(String key, String value)
Definition: EventBuilder.java:133
EventBuilder clone()
Definition: EventBuilder.java:172
Definition: ModelException.java:23
Definition: Errors.java:23
Event event
Definition: EventBuilder.java:44
Definition: EventBuilder.java:37
Definition: Details.java:23

◆ requiredActionChallenge()

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

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

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

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