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

公開メンバ関数

void evaluateTriggers (RequiredActionContext context)
 
void requiredActionChallenge (RequiredActionContext context)
 
void processAction (RequiredActionContext context)
 
void close ()
 

静的公開変数類

static final ConsoleUpdateTotp SINGLETON = new ConsoleUpdateTotp()
 

限定公開メンバ関数

ConsoleDisplayMode challenge (RequiredActionContext context)
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ challenge()

ConsoleDisplayMode org.keycloak.authentication.requiredactions.ConsoleUpdateTotp.challenge ( RequiredActionContext  context)
inlineprotected
55  {
56  return ConsoleDisplayMode.challenge(context)
57  .header()
58  .param("totp")
59  .label("console-otp")
60  .challenge();
61  }

◆ close()

void org.keycloak.authentication.requiredactions.ConsoleUpdateTotp.close ( )
inline
101  {
102 
103  }

◆ evaluateTriggers()

void org.keycloak.authentication.requiredactions.ConsoleUpdateTotp.evaluateTriggers ( RequiredActionContext  context)
inline
42  {
43  }

◆ processAction()

void org.keycloak.authentication.requiredactions.ConsoleUpdateTotp.processAction ( RequiredActionContext  context)
inline
64  {
65  EventBuilder event = context.getEvent();
66  event.event(EventType.UPDATE_TOTP);
67  MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
68  String totp = formData.getFirst("totp");
69  String totpSecret = context.getAuthenticationSession().getAuthNote("totpSecret");
70 
71  if (Validation.isBlank(totp)) {
72  context.challenge(
73  challenge(context).message(Messages.MISSING_TOTP)
74  );
75  return;
76  } else if (!CredentialValidation.validOTP(context.getRealm(), totp, totpSecret)) {
77  context.challenge(
78  challenge(context).message(Messages.INVALID_TOTP)
79  );
80  return;
81  }
82 
83  UserCredentialModel credentials = new UserCredentialModel();
84  credentials.setType(context.getRealm().getOTPPolicy().getType());
85  credentials.setValue(totpSecret);
86  context.getSession().userCredentialManager().updateCredential(context.getRealm(), context.getUser(), credentials);
87 
88 
89  // if type is HOTP, to update counter we execute validation based on supplied token
90  UserCredentialModel cred = new UserCredentialModel();
91  cred.setType(context.getRealm().getOTPPolicy().getType());
92  cred.setValue(totp);
93  context.getSession().userCredentialManager().isValid(context.getRealm(), context.getUser(), cred);
94 
95  context.getAuthenticationSession().removeAuthNote("totpSecret");
96  context.success();
97  }
ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleUpdateTotp.java:55

◆ requiredActionChallenge()

void org.keycloak.authentication.requiredactions.ConsoleUpdateTotp.requiredActionChallenge ( RequiredActionContext  context)
inline
45  {
46  TotpBean totpBean = new TotpBean(context.getSession(), context.getRealm(), context.getUser(), context.getUriInfo().getRequestUriBuilder());
47  String totpSecret = totpBean.getTotpSecret();
48  context.getAuthenticationSession().setAuthNote("totpSecret", totpSecret);
49  Response challenge = challenge(context).form()
50  .setAttribute("totp", totpBean)
51  .createForm("login-config-totp-text.ftl");
52  context.challenge(challenge);
53  }
ConsoleDisplayMode challenge(RequiredActionContext context)
Definition: ConsoleUpdateTotp.java:55

メンバ詳解

◆ SINGLETON

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

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