keycloak-oidc-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 ()
 
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
Definition: ConsoleDisplayMode.java:38
HeaderBuilder header
Definition: ConsoleDisplayMode.java:128
static final String PASSWORD_NEW
Definition: ConsoleUpdatePassword.java:40
static ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleDisplayMode.java:81

◆ 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  }

◆ 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 final Logger logger
Definition: UpdatePassword.java:50
Definition: UserModel.java:123
int getDaysToExpirePassword()
Definition: PasswordPolicy.java:98
void addRequiredAction(String action)
PasswordPolicy getPasswordPolicy()
< T extends Provider > T getProvider(Class< T > clazz)
UPDATE_PASSWORD
Definition: UserModel.java:124

◆ 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
Definition: UserModel.java:123
UPDATE_PASSWORD
Definition: UserModel.java:124

◆ 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

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

56  {
57  return 0;
58  }

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

◆ 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

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