@Bean
        @ConditionalOnMissingBean(name = "defaultMappedExceptionErrorViewResolver")
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public ErrorViewResolver defaultMappedExceptionErrorViewResolver(
            final WebProperties webProperties,
            final ConfigurableApplicationContext applicationContext) {
            val mappings = Map.<Class<? extends Throwable>, ModelAndView>of(
                UnknownTenantException.class, WebUtils.toModelAndView(HttpStatus.NOT_FOUND, CasWebflowConstants.VIEW_ID_UNKNOWN_TENANT),
                UnauthorizedServiceException.class, WebUtils.toModelAndView(HttpStatus.FORBIDDEN, CasWebflowConstants.VIEW_ID_SERVICE_ERROR),
                NoSuchConversationException.class, WebUtils.toModelAndView(HttpStatus.UNPROCESSABLE_ENTITY, "error/%s".formatted(HttpStatus.UNPROCESSABLE_ENTITY.value())),
                RootCasException.class, WebUtils.toModelAndView(HttpStatus.BAD_REQUEST, CasWebflowConstants.VIEW_ID_SERVICE_ERROR)
            );
            return new MappedExceptionErrorViewResolver(applicationContext,
                webProperties.getResources(), mappings, errorContext -> Optional.empty());
        }
Load property files containing non-i18n fallback values
that should be exposed to Thyme templates.
keys in properties files added last will take precedence over the
internal cas_common_messages.properties.
Keys in regular messages bundles will override any of the common messages.

@param casProperties the cas properties
@return PropertiesFactoryBean containing all common (non-i18n) messages
core/cas-server-core-web/src/main/java/org/apereo/cas/config/CasCoreWebConfiguration.java