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");
65 if (Validation.isBlank(totp)) {
66 Response challenge = context.form()
67 .setAttribute(
"mode",
getMode(context))
69 .createResponse(UserModel.RequiredAction.CONFIGURE_TOTP);
70 context.challenge(challenge);
72 }
else if (!CredentialValidation.validOTP(context.getRealm(), totp, totpSecret)) {
73 Response challenge = context.form()
74 .setAttribute(
"mode",
getMode(context))
76 .createResponse(UserModel.RequiredAction.CONFIGURE_TOTP);
77 context.challenge(challenge);
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);
88 UserCredentialModel cred =
new UserCredentialModel();
89 cred.setType(context.getRealm().getOTPPolicy().getType());
91 context.getSession().userCredentialManager().isValid(context.getRealm(), context.getUser(), cred);
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