package org.apereo.cas.adaptors.gauth.repository.credentials; import com.warrenstrange.googleauth.GoogleAuthenticatorKey; import com.warrenstrange.googleauth.IGoogleAuthenticator; import org.apereo.cas.otp.repository.credentials.BaseInMemoryOneTimeTokenCredentialRepository; import org.apereo.cas.otp.repository.credentials.OneTimeTokenAccount; /** * This is {@link InMemoryGoogleAuthenticatorTokenCredentialRepository}. * * @author Misagh Moayyed * @since 5.0.0 */ public class InMemoryGoogleAuthenticatorTokenCredentialRepository extends BaseInMemoryOneTimeTokenCredentialRepository { private final IGoogleAuthenticator googleAuthenticator; /** * Instantiates a new In memory google authenticator account registry. * * @param googleAuthenticator the google authenticator */ public InMemoryGoogleAuthenticatorTokenCredentialRepository(final IGoogleAuthenticator googleAuthenticator) { this.googleAuthenticator = googleAuthenticator; } @Override public OneTimeTokenAccount create(final String username) { final GoogleAuthenticatorKey key = this.googleAuthenticator.createCredentials(); return new GoogleAuthenticatorAccount(username, key.getKey(), key.getVerificationCode(), key.getScratchCodes()); } }