package org.apereo.cas.otp.web.flow; import org.apereo.cas.otp.repository.credentials.OneTimeTokenCredentialRepository; import org.apereo.cas.otp.repository.credentials.OneTimeTokenAccount; import org.apereo.cas.web.support.WebUtils; import org.springframework.webflow.action.AbstractAction; import org.springframework.webflow.execution.Event; import org.springframework.webflow.execution.RequestContext; /** * Save the registration credential into the repository. * * @author Misagh Moayyed * @since 5.0.0 */ public class OneTimeTokenAccountSaveRegistrationAction extends AbstractAction { private final OneTimeTokenCredentialRepository repository; public OneTimeTokenAccountSaveRegistrationAction(final OneTimeTokenCredentialRepository repository) { this.repository = repository; } @Override protected Event doExecute(final RequestContext requestContext) throws Exception { final OneTimeTokenAccount account = requestContext.getFlowScope().get("key", OneTimeTokenAccount.class); final String uid = WebUtils.getAuthentication(requestContext).getPrincipal().getId(); repository.save(uid, account.getSecretKey(), account.getValidationCode(), account.getScratchCodes()); return success(); } }