@Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        @ConditionalOnMissingBean(name = "jpaGoogleAuthenticatorAccountRegistry")
        public OneTimeTokenCredentialRepository googleAuthenticatorAccountRegistry(
            @Qualifier(CasGoogleAuthenticator.BEAN_NAME)
            final CasGoogleAuthenticator googleAuthenticatorInstance,
            @Qualifier("googleAuthenticatorAccountCipherExecutor")
            final CipherExecutor googleAuthenticatorAccountCipherExecutor,
            @Qualifier("googleAuthenticatorScratchCodesCipherExecutor")
            final CipherExecutor googleAuthenticatorScratchCodesCipherExecutor) {
            return new JpaGoogleAuthenticatorTokenCredentialRepository(googleAuthenticatorAccountCipherExecutor,
                googleAuthenticatorScratchCodesCipherExecutor, googleAuthenticatorInstance);
        }
This is {@link CasGoogleAuthenticatorJpaAutoConfiguration}.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-gauth-jpa/src/main/java/org/apereo/cas/config/CasGoogleAuthenticatorJpaAutoConfiguration.java