139 RealmModel realm = session.getContext().getRealm();
140 UriInfo uriInfo = session.getContext().getUri();
142 int validityInSecs = realm.getActionTokenGeneratedByUserLifespan(VerifyEmailActionToken.TOKEN_TYPE);
143 int absoluteExpirationInSecs = Time.currentTime() + validityInSecs;
145 String authSessionEncodedId = AuthenticationSessionCompoundId.fromAuthSession(authSession).getEncodedId();
146 VerifyEmailActionToken token =
new VerifyEmailActionToken(user.getId(), absoluteExpirationInSecs, authSessionEncodedId, user.getEmail(), authSession.getClient().getClientId());
147 UriBuilder builder = Urls.actionTokenBuilder(uriInfo.getBaseUri(), token.serialize(session, realm, uriInfo),
148 authSession.getClient().getClientId(), authSession.getTabId());
149 String link = builder.build(realm.getName()).toString();
150 long expirationInMinutes = TimeUnit.SECONDS.toMinutes(validityInSecs);
154 .getProvider(EmailTemplateProvider.class)
155 .setAuthenticationSession(authSession)
158 .sendVerifyEmail(link, expirationInMinutes);
160 }
catch (EmailException e) {
161 logger.error(
"Failed to send verification email", e);
162 event.error(Errors.EMAIL_SEND_FAILED);
165 return forms.createResponse(UserModel.RequiredAction.VERIFY_EMAIL);
static final Logger logger
Definition: VerifyEmail.java:48