@ConditionalOnMissingBean(name = CasWebflowConstants.ACTION_ID_ACCOUNT_REGISTRATION_VALIDATE_CAPTCHA)
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        @Bean
        public Action accountMgmtRegistrationValidateCaptchaAction(
            final ConfigurableApplicationContext applicationContext,
            final CasConfigurationProperties casProperties,
            @Qualifier("accountMgmtRegistrationCaptchaActivationStrategy")
            final CaptchaActivationStrategy accountMgmtRegistrationCaptchaActivationStrategy) {

            return BeanSupplier.of(Action.class)
                .when(CONDITION.given(applicationContext.getEnvironment()))
                .supply(() ->
                    WebflowActionBeanSupplier.builder()
                        .withApplicationContext(applicationContext)
                        .withProperties(casProperties)
                        .withAction(() -> {
                            val recaptcha = casProperties.getAccountRegistration().getGoogleRecaptcha();
                            return new ValidateCaptchaAction(CaptchaValidator.getInstance(recaptcha),
                                accountMgmtRegistrationCaptchaActivationStrategy);
                        })
                        .withId(CasWebflowConstants.ACTION_ID_ACCOUNT_REGISTRATION_VALIDATE_CAPTCHA)
                        .build()
                        .get())
                .otherwise(() -> ConsumerExecutionAction.NONE)
                .get();
        }
This is {@link CasAccountManagementWebflowAutoConfiguration}.

@author Misagh Moayyed
@since 6.5.0
support/cas-server-support-account-mgmt/src/main/java/org/apereo/cas/config/CasAccountManagementWebflowAutoConfiguration.java