keycloak-service
公開メンバ関数 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.authentication.requiredactions.UpdateTotp クラス
org.keycloak.authentication.requiredactions.UpdateTotp の継承関係図
Inheritance graph
org.keycloak.authentication.requiredactions.UpdateTotp 連携図
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 ()
 
boolean isOneTimeAction ()
 

非公開メンバ関数

String getMode (RequiredActionContext context)
 

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ close()

void org.keycloak.authentication.requiredactions.UpdateTotp.close ( )
inline
98  {
99 
100  }

◆ create()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdateTotp.create ( KeycloakSession  session)
inline
103  {
104  return this;
105  }

◆ createDisplay()

RequiredActionProvider org.keycloak.authentication.requiredactions.UpdateTotp.createDisplay ( KeycloakSession  session,
String  displayType 
)
inline
109  {
110  if (displayType == null) return this;
111  if (!OAuth2Constants.DISPLAY_CONSOLE.equalsIgnoreCase(displayType)) return null;
112  return ConsoleUpdateTotp.SINGLETON;
113  }

◆ evaluateTriggers()

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

◆ getDisplayText()

String org.keycloak.authentication.requiredactions.UpdateTotp.getDisplayText ( )
inline
127  {
128  return "Configure OTP";
129  }

◆ getId()

String org.keycloak.authentication.requiredactions.UpdateTotp.getId ( )
inline
133  {
134  return UserModel.RequiredAction.CONFIGURE_TOTP.name();
135  }

◆ getMode()

String org.keycloak.authentication.requiredactions.UpdateTotp.getMode ( RequiredActionContext  context)
inlineprivate
53  {
54  return context.getUriInfo().getQueryParameters().getFirst("mode");
55  }

◆ init()

void org.keycloak.authentication.requiredactions.UpdateTotp.init ( Config.Scope  config)
inline
117  {
118 
119  }

◆ isOneTimeAction()

boolean org.keycloak.authentication.requiredactions.UpdateTotp.isOneTimeAction ( )
inline
138  {
139  return true;
140  }

◆ postInit()

void org.keycloak.authentication.requiredactions.UpdateTotp.postInit ( KeycloakSessionFactory  factory)
inline
122  {
123 
124  }

◆ processAction()

void org.keycloak.authentication.requiredactions.UpdateTotp.processAction ( RequiredActionContext  context)
inline
58  {
59  EventBuilder event = context.getEvent();
60  event.event(EventType.UPDATE_TOTP);
61  MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
62  String totp = formData.getFirst("totp");
63  String totpSecret = formData.getFirst("totpSecret");
64 
65  if (Validation.isBlank(totp)) {
66  Response challenge = context.form()
67  .setAttribute("mode", getMode(context))
68  .setError(Messages.MISSING_TOTP)
69  .createResponse(UserModel.RequiredAction.CONFIGURE_TOTP);
70  context.challenge(challenge);
71  return;
72  } else if (!CredentialValidation.validOTP(context.getRealm(), totp, totpSecret)) {
73  Response challenge = context.form()
74  .setAttribute("mode", getMode(context))
75  .setError(Messages.INVALID_TOTP)
76  .createResponse(UserModel.RequiredAction.CONFIGURE_TOTP);
77  context.challenge(challenge);
78  return;
79  }
80 
81  UserCredentialModel credentials = new UserCredentialModel();
82  credentials.setType(context.getRealm().getOTPPolicy().getType());
83  credentials.setValue(totpSecret);
84  context.getSession().userCredentialManager().updateCredential(context.getRealm(), context.getUser(), credentials);
85 
86 
87  // if type is HOTP, to update counter we execute validation based on supplied token
88  UserCredentialModel cred = new UserCredentialModel();
89  cred.setType(context.getRealm().getOTPPolicy().getType());
90  cred.setValue(totp);
91  context.getSession().userCredentialManager().isValid(context.getRealm(), context.getUser(), cred);
92 
93  context.success();
94  }
static final String MISSING_TOTP
Definition: Messages.java:53
Definition: Messages.java:22
String getMode(RequiredActionContext context)
Definition: UpdateTotp.java:53
static final String INVALID_TOTP
Definition: Messages.java:61

◆ requiredActionChallenge()

void org.keycloak.authentication.requiredactions.UpdateTotp.requiredActionChallenge ( RequiredActionContext  context)
inline
46  {
47  Response challenge = context.form()
48  .setAttribute("mode", getMode(context))
49  .createResponse(UserModel.RequiredAction.CONFIGURE_TOTP);
50  context.challenge(challenge);
51  }
String getMode(RequiredActionContext context)
Definition: UpdateTotp.java:53

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