- disabling mfa on password reset is this:

cas.authn.pm.reset.multifactor-authentication-enabled=true 

Controls whether password reset operations must activate and support a 
multifactor authentication flow based on the set of available MFA providers 
that are configured and active, before reset instructions can be shared and 
sent. 

https://apereo.github.io/cas/7.2.x/password_management/Password-Management-Reset.html
 

22 Ekim 2025 Çarşamba tarihinde saat 16:56:04 UTC+3 itibarıyla Tom 
Reijnders şunları yazdı:

> Would you be so kind as to specify which parameter that is? I run into the 
> same issue.
>
> Tom
>
> Op vrijdag 17 oktober 2025 om 22:01:38 UTC+2 schreef Raph:
>
>> We ended up finding the right parameter to deactivate the mfa when 
>> resetting the password...
>>
>> I believe it might be a cas bug, a fresh install without any script, or 
>> java modified had the same behaviour.
>>
>> Although, we did have other implements like captcha as you mentionned.
>>
>> Le ven. 17 oct. 2025, 14 h 49, Ray Bon <[email protected]> a écrit :
>>
>>> Raph,
>>>
>>> This part of the log:
>>> No transition found on occurrence of event 'unavailable' in state 
>>> 'mfa-simple' of flow 'pswdreset'
>>>
>>> Are you creating the flow pswdreset or the the event unavailable?
>>>
>>> If not, then this would be a bug in cas code.
>>> If you have created a flow or your groovy script is returning the 
>>> unavailable event, then that would be the place to investigate.
>>>
>>> Is it possible that trusted-mfa or captcha features are affecting the 
>>> flow?
>>> Try to simplify your config.
>>>
>>> We have added custom flows into our cas. To help understand what is 
>>> going on, I created a method that would generate a human readable 
>>> description of the flow and write to a file (included below in case you are 
>>> creating custom flows).
>>>
>>> Ray
>>>
>>> package ca.uvic.idm.cas.web.flow;
>>>
>>> import lombok.extern.slf4j.Slf4j;
>>> import lombok.val;
>>> import org.apereo.cas.configuration.CasConfigurationProperties;
>>> import org.apereo.cas.web.flow.configurer.AbstractCasWebflowConfigurer;
>>> import org.springframework.context.ConfigurableApplicationContext;
>>> import 
>>> org.springframework.webflow.definition.registry.FlowDefinitionRegistry;
>>> import org.springframework.webflow.engine.ActionState;
>>> import org.springframework.webflow.engine.Flow;
>>> import 
>>> org.springframework.webflow.engine.builder.support.FlowBuilderServices;
>>>
>>> import java.io.BufferedWriter;
>>> import java.io.FileWriter;
>>> import java.io.IOException;
>>> import java.util.regex.Pattern;
>>>
>>> @Slf4j
>>> public abstract class AbstractUvicCasWebflowConfigurer extends 
>>> AbstractCasWebflowConfigurer {
>>>
>>>     protected String outputFileName = "/tmp/flow.txt";
>>>
>>>     public AbstractUvicCasWebflowConfigurer(FlowBuilderServices 
>>> flowBuilderServices,
>>>                                                                             
>>>         FlowDefinitionRegistry loginFlowDefinitionRegistry,
>>>                                                                             
>>>         ConfigurableApplicationContext applicationContext,
>>>                                                                             
>>>         CasConfigurationProperties casProperties) {
>>>             super(flowBuilderServices, loginFlowDefinitionRegistry, 
>>> applicationContext, casProperties);
>>>     }
>>>
>>>     /**
>>>      * Inserts an inbound state into a transition for a target state and 
>>> sets inbound
>>>      * state's matching transition to the previous target (preserving 
>>> overall flow).
>>>      * Inbound state inserts itself into target state by replacing target 
>>> transition.
>>>      * @param flow
>>>      * @param inboundStateId bean identifier for insertable action state
>>>      * @param inboundActionId action to be performed
>>>      * @param targetStateid bean identifier for state immediately before 
>>> inbound
>>>      * @param targetTransitionId transition point for insertion
>>>      */
>>>     protected ActionState insertIntoFlow(
>>>                     final Flow flow,
>>>                     final String inboundStateId,
>>>                     final String inboundActionId,
>>>                     final String targetStateid,
>>>                     final String targetTransitionId) {
>>>             val inboundActionState = createActionState(flow, 
>>> inboundStateId, inboundActionId);
>>>             val targetState = getState(flow, targetStateid, 
>>> ActionState.class);
>>>
>>>             val destinationStateId = 
>>> targetState.getTransition(targetTransitionId).getTargetStateId();
>>>             val inboundTransitionSet = 
>>> inboundActionState.getTransitionSet();
>>>             inboundTransitionSet.add(createTransition(targetTransitionId, 
>>> destinationStateId));
>>>
>>>             createTransitionForState(targetState, targetTransitionId, 
>>> inboundStateId, true);
>>>             flowToFile(flow);
>>>             return inboundActionState;
>>>     }
>>>
>>>     protected void flowToFile(final Flow flow) {
>>>             flowToFile(flow, outputFileName);
>>>     }
>>>
>>>
>>>     protected void flowToFile(final Flow flow, final String fileName) {
>>>             if (LOGGER.isTraceEnabled()) {
>>>                     String s = flow.toString().trim();
>>>                     String formatted = formatFlow(s);
>>>                     try (BufferedWriter writer = new BufferedWriter(new 
>>> FileWriter(fileName))) {
>>>     //                      writer.write(s);
>>>     //                      writer.write("\n\n\n\n");
>>>                             writer.write(formatted);
>>>                     } catch (IOException e) {
>>>                             LOGGER.error(e.getMessage());
>>>                     }
>>>             }
>>>     }
>>>
>>>     /**
>>>      * Formats a spring webflow flow to help determine how to modify a flow.
>>>      * Adds new lines and indents to make it easier to read.
>>>      * @param input flow.toString()
>>>      * @return nicely formatted flow
>>>      */
>>>     public String formatFlow(final String input) {
>>>             //LOGGER.debug("input: ." + input + ".");
>>>             // used to add an extra indent for an object's field members
>>>             java.util.Stack<java.util.AbstractMap.SimpleEntry> stack = new 
>>> java.util.Stack<>();
>>>             int currPosition = 0;
>>>             String indent = "";
>>>             String indentor = "\t";
>>>             String newLine = "\n";
>>>             // object identifier
>>>             java.util.regex.Pattern objPattern = 
>>> Pattern.compile("^(\\w+@\\w+)\\b.*");
>>>
>>>             String in = input.trim();
>>>             StringBuilder out = new StringBuilder();
>>>             while (in.length() > currPosition) {
>>>                     java.util.regex.Matcher m = 
>>> objPattern.matcher(in.substring(currPosition));
>>>                     String firstTwo = "";
>>>                     // capture first two characters to match against ']' or 
>>> '],'
>>>                     if (1 < in.length() - currPosition) {
>>>                             firstTwo = in.substring(currPosition, 
>>> currPosition + 2);
>>>                     } else {
>>>                             // at end of input
>>>                             firstTwo = in.substring(currPosition, 
>>> currPosition + 1);
>>>                     }
>>>                     if (in.startsWith("[", currPosition)) {
>>>                             
>>> out.append(indent).append(in.charAt(currPosition)).append(newLine);
>>>                             indent += indentor;
>>>                             currPosition++;
>>>                             if (!stack.empty()) {
>>>                                     
>>> java.util.AbstractMap.SimpleEntry<String, Integer> se = stack.pop();
>>>                                     se.setValue(se.getValue() + 1);
>>>                                     stack.push(se);
>>>                             }
>>>                     } else if (firstTwo.startsWith("]")) {
>>>                             if (!stack.empty()) {
>>>                                     
>>> java.util.AbstractMap.SimpleEntry<String, Integer> se = stack.pop();
>>>                                     if (1 > se.getValue()) {
>>>                                             // outdent after printing 
>>> member variables
>>>                                             indent = 
>>> indent.replaceFirst(indentor, "");
>>>                                             if (!stack.empty()) {
>>>                                                     // this ] closes from 
>>> outer object
>>>                                                     
>>> java.util.AbstractMap.SimpleEntry<String, Integer> seOuter = stack.pop();
>>>                                                     
>>> seOuter.setValue(seOuter.getValue() - 1);
>>>                                                     stack.push(seOuter);
>>>                                             }
>>>                                     } else {
>>>                                             se.setValue(se.getValue() - 1);
>>>                                             stack.push(se);
>>>                                     }
>>>                             }
>>>                             indent = indent.replaceFirst(indentor, "");
>>>                             out.append(indent).append("]");
>>>                             if ("],".equals(firstTwo)) {
>>>                                     out.append(",");
>>>                                     currPosition++;
>>>                             }
>>>                             out.append(newLine);
>>>                             currPosition++;
>>>                     } else if (m.matches()) {
>>>                             String obj = m.group(1);
>>>                             out.append(indent).append(obj).append(newLine);
>>>                             indent = indent + indentor;
>>>                             // prepare for members
>>>                             stack.push(new 
>>> java.util.AbstractMap.SimpleEntry<String, Integer>(obj, 0));
>>>                             currPosition += obj.length();
>>>                     } else {
>>>                             int nextOpenBracket = in.indexOf("[", 
>>> currPosition);
>>>                             int nextCloseBracket = in.indexOf("]", 
>>> currPosition);
>>>                             int nextComma = in.indexOf(",", currPosition);
>>>                             int nextMark = 0;
>>>                             boolean increaseIndent = false;
>>>                             // if [ or , not found, push beyond last 
>>> position which would be ]
>>>                             if (0 > nextOpenBracket) {
>>>                                     nextOpenBracket = in.length();
>>>                             }
>>>                             if (0 > nextComma) {
>>>                                     nextComma = in.length();
>>>                             }
>>>                             // add 1 when [ and , since they should remain 
>>> on same line and ] should be on next line
>>>                             if (nextCloseBracket > nextOpenBracket) {
>>>                                     if (nextOpenBracket > nextComma) {
>>>                                             nextMark = nextComma + 1;
>>>                                     } else {
>>>                                             nextMark = nextOpenBracket + 1;
>>>                                             // bypass empty and null
>>>                                             if 
>>> ((in.substring(nextMark).startsWith("[empty]]"))
>>>                                                             || 
>>> (in.substring(nextMark).startsWith("null]"))) {
>>>                                                     if 
>>> (in.substring(nextMark).startsWith("[empty]],")) {
>>>                                                             nextMark += 9;
>>>                                                     } else if 
>>> (in.substring(nextMark).startsWith("[empty]]")) {
>>>                                                             nextMark += 8;
>>>                                                     } else if 
>>> (in.substring(nextMark).startsWith("null],")) {
>>>                                                             nextMark += 6;
>>>                                                     } else if 
>>> (in.substring(nextMark).startsWith("null]")) {
>>>                                                             nextMark += 5;
>>>                                                     }
>>>                                             } else {
>>>                                                     // indent members
>>>                                                     increaseIndent = true;
>>>                                                     if (!stack.empty()) {
>>>                                                             
>>> java.util.AbstractMap.SimpleEntry<String, Integer> se = stack.pop();
>>>                                                             
>>> se.setValue(se.getValue() + 1);
>>>                                                             stack.push(se);
>>>                                                     }
>>>                                             }
>>>                                     }
>>>                             } else if (nextCloseBracket > nextComma) {
>>>                                     nextMark = nextComma + 1;
>>>                             } else {
>>>                                     nextMark = nextCloseBracket;
>>>                             }
>>>                             String s = in.substring(currPosition, 
>>> nextMark).trim();
>>>                             if (0 < s.length()) {
>>>                                     
>>> out.append(indent).append(s).append(newLine);
>>>                                     currPosition = nextMark;
>>>                             }
>>>                             if (increaseIndent) {
>>>                                     // for next line
>>>                                     indent = indent + indentor;
>>>                             }
>>>                     }
>>>             }
>>>             String formatted = out.toString().trim();
>>>             //LOGGER.debug("formatted: ." + formatted + ".");
>>>
>>>             return formatted;
>>>     }
>>> }
>>>
>>>
>>> ------------------------------
>>> *From:* [email protected] <[email protected]> on behalf of Raph <
>>> [email protected]>
>>> *Sent:* October 16, 2025 14:27
>>> *To:* CAS Community <[email protected]>
>>> *Cc:* Raph <[email protected]>
>>> *Subject:* [cas-user] Re: 7.2.6 : No transition found on occurence of 
>>> event 'unavailable' in state 'mfa-simple' of flow 'pswdreset' 
>>>  
>>> Context:
>>> Our project is a simple overlay which has templates, css and 3 classes:
>>>  - CasOverlayOverrideConfiguration (there by default)
>>> - PasswordChangeAction : hardcoded message changed to french.
>>> - MultifactorAuthenticationSetTrustAction : force the trust to expire 
>>> after 30 days.
>>> What I tried (that somewhat makes sense... believe me, i tried useless 
>>> stuff...):
>>> - Defining a groovy script as a mfa policy in my service, the script 
>>> checks the URL to see if it contains pswdrst. and "bypasses" the mfa in 
>>> the log, but we still get the error.
>>>   - A bunch of parameters...
>>> - Using 7.3.0 instead
>>> My 7.3 build is vanilla, except for these implementations added in the 
>>> build.gradle:
>>>
>>>     implementation "org.apereo.cas:cas-server-webapp"
>>>     implementation "org.apereo.cas:cas-server-support-ldap"
>>>     implementation "org.apereo.cas:cas-server-core-configuration"
>>>     implementation 
>>> "org.apereo.cas:cas-server-support-json-service-registry"
>>>     implementation "org.apereo.cas:cas-server-support-pm-ldap"
>>>     implementation "org.apereo.cas:cas-server-support-throttle"
>>>     implementation "org.apereo.cas:cas-server-support-simple-mfa"
>>>     implementation "org.apereo.cas:cas-server-support-trusted-mfa"
>>>     implementation "org.apereo.cas:cas-server-support-captcha"
>>>     implementation "org.apereo.cas:cas-server-core-webflow-api"
>>>     implementation "org.apereo.cas:cas-server-core-web-api"
>>>     implementation "org.apereo.cas:cas-server-core-util"
>>>     implementation "org.apereo.cas:cas-server-core-scripting"
>>>     implementation "org.apereo.cas:cas-server-support-pm-core"
>>>     implementation "org.apereo.cas:cas-server-support-pm-webflow"
>>>     implementation "org.apereo.cas:cas-server-support-rest"
>>>     implementation "org.apereo.cas:cas-server-support-swagger"
>>>     implementation "org.apereo.cas:cas-server-support-oauth:${
>>> project.'cas.version'}"
>>>     implementation "org.apereo.cas:cas-server-core-authentication-api"
>>>     implementation "org.apereo.cas:cas-server-support-trusted-mfa-core"
>>>     implementation "org.apereo.cas:cas-server-support-saml-idp:${
>>> project.'cas.version'}"
>>>
>>>     if (project.hasProperty("casModules")) {
>>>         def dependencies = project.getProperty("casModules").split(",")
>>>         dependencies.each {
>>>             def projectsToAdd = rootProject.subprojects.findAll {project 
>>> ->
>>>                 project.name == "cas-server-core-${it}" || project.name 
>>> == "cas-server-support-${it}"
>>>             }
>>>             projectsToAdd.each {implementation it}
>>>         }
>>>     }
>>>
>>>
>>> Is something more required in versions after 6.6.7 to use simple-mfa ?
>>>
>>> *Stacktrace when the event occurs: *
>>>
>>> 2025-10-16 16:34:07,010 ERROR 
>>> [org.springframework.boot.web.servlet.support.ErrorPageFilter] - 
>>> <Forwarding to error page from request [/login] due to exception 
>>> [jakarta.servlet.ServletException: Request processing failed: 
>>> org.springframework.webflow.engine.NoMatchingTransitionException: No 
>>> transition found on occurence of event 'unavailable' in state 'mfa-simple' 
>>> of flow 'pswdreset' -- valid transitional criteria are 
>>> array<TransitionCriteria>[resumePasswordReset, success] -- likely 
>>> programmer error, check the set of TransitionCriteria for this state]>
>>> java.lang.RuntimeException: jakarta.servlet.ServletException: Request 
>>> processing failed: 
>>> org.springframework.webflow.engine.NoMatchingTransitionException: No 
>>> transition found on occurence of event 'unavailable' in state 'mfa-simple' 
>>> of flow 'pswdreset' -- valid transitional criteria are 
>>> array<TransitionCriteria>[resumePasswordReset, success] -- likely 
>>> programmer error, check the set of TransitionCriteria for this state
>>>         at 
>>> org.apereo.cas.web.support.filters.AbstractSecurityFilter.throwException(AbstractSecurityFilter.java:42)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apereo.cas.web.support.filters.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:198)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.web.support.filters.AddResponseHeadersFilter.doFilter(AddResponseHeadersFilter.java:62)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:66)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:101)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:75)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:133)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:243)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:238)
>>>  
>>> ~[spring-security-config-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.logging.web.ThreadContextMDCServletFilter.doFilter(ThreadContextMDCServletFilter.java:111)
>>>  
>>> ~[cas-server-core-logging-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:114)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
>>>  
>>> ~[spring-security-web-6.4.5.jar:6.4.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:36)
>>>  
>>> ~[cas-server-core-audit-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.config.CasEmbeddedContainerTomcatFiltersConfiguration$1.doFilter(CasEmbeddedContainerTomcatFiltersConfiguration.java:101)
>>>  
>>> ~[cas-server-webapp-init-tomcat-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:124)
>>>  
>>> ~[spring-boot-3.4.4.jar:3.4.4]
>>>         at 
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:99)
>>>  
>>> ~[spring-boot-3.4.4.jar:3.4.4]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117)
>>>  
>>> ~[spring-boot-3.4.4.jar:3.4.4]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:70)
>>>  
>>> ~[log4j-jakarta-web-2.24.3.jar:2.24.3]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:666)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) 
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) 
>>> ~[tomcat-coyote.jar:10.1.46]
>>>         at 
>>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
>>>  
>>> ~[tomcat-coyote.jar:10.1.46]
>>>         at 
>>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
>>>  
>>> ~[tomcat-coyote.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1776)
>>>  
>>> ~[tomcat-coyote.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
>>>  
>>> ~[tomcat-coyote.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:975)
>>>  
>>> ~[tomcat-util.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:493)
>>>  
>>> ~[tomcat-util.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
>>>  
>>> ~[tomcat-util.jar:10.1.46]
>>>         at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
>>> Caused by: jakarta.servlet.ServletException: Request processing failed: 
>>> org.springframework.webflow.engine.NoMatchingTransitionException: No 
>>> transition found on occurence of event 'unavailable' in state 'mfa-simple' 
>>> of flow 'pswdreset' -- valid transitional criteria are 
>>> array<TransitionCriteria>[resumePasswordReset, success] -- likely 
>>> programmer error, check the set of TransitionCriteria for this state
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1022)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) 
>>> ~[servlet-api.jar:6.0]
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) 
>>> ~[servlet-api.jar:6.0]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
>>> ~[tomcat-websocket.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.web.support.filters.RequestParameterPolicyEnforcementFilter.doFilter(RequestParameterPolicyEnforcementFilter.java:393)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.web.support.filters.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:196)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         ... 102 more
>>> Caused by: 
>>> org.springframework.webflow.engine.NoMatchingTransitionException: No 
>>> transition found on occurence of event 'unavailable' in state 'mfa-simple' 
>>> of flow 'pswdreset' -- valid transitional criteria are 
>>> array<TransitionCriteria>[resumePasswordReset, success] -- likely 
>>> programmer error, check the set of TransitionCriteria for this state
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.getRequiredTransition(TransitionableState.java:93)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.SubflowState.handleEvent(SubflowState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.endActiveFlowSession(FlowExecutionImpl.java:414)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.endActiveFlowSession(RequestControlContextImpl.java:238)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.EndState.doEnter(EndState.java:107) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at org.springframework.webflow.engine.Flow.start(Flow.java:527) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.start(RequestControlContextImpl.java:234)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.SubflowState.doEnter(SubflowState.java:101)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at org.springframework.webflow.engine.Flow.start(Flow.java:527) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.start(RequestControlContextImpl.java:234)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.SubflowState.doEnter(SubflowState.java:101)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Transition.execute(Transition.java:228) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.State.enter(State.java:194) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at org.springframework.webflow.engine.Flow.start(Flow.java:527) 
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:223)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.java:139)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.apereo.cas.web.flow.executor.WebflowExecutorFactory$CasFlowExecutorImpl.launchExecution(WebflowExecutorFactory.java:96)
>>>  
>>> ~[cas-server-core-webflow-api-7.2.6.jar:7.2.6]
>>>         at 
>>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>>>  
>>> ~[?:?]
>>>         at java.base/java.lang.reflect.Method.invoke(Method.java:580) 
>>> ~[?:?]
>>>         at 
>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:102)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apereo.cas.monitor.ExecutableObserver.executeJoinPoint(ExecutableObserver.java:82)
>>>  
>>> ~[cas-server-core-api-monitor-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apereo.cas.monitor.ExecutableObserver.observe(ExecutableObserver.java:63)
>>>  
>>> ~[cas-server-core-api-monitor-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apereo.cas.config.CasWebflowMonitoringConfiguration$CasWebflowMonitoringAspect.aroundWebflowOperations(CasWebflowMonitoringConfiguration.java:59)
>>>  
>>> ~[cas-server-core-webflow-7.2.6.jar:7.2.6]
>>>         at 
>>> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
>>>  
>>> ~[?:?]
>>>         at java.base/java.lang.reflect.Method.invoke(Method.java:580) 
>>> ~[?:?]
>>>         at 
>>> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:642)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:632)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:71)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)
>>>  
>>> ~[spring-aop-6.2.5.jar:6.2.5]
>>>         at jdk.proxy3/jdk.proxy3.$Proxy162.launchExecution(Unknown 
>>> Source) ~[?:?]
>>>         at 
>>> org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:264)
>>>  
>>> ~[spring-webflow-3.0.1.jar:3.0.1]
>>>         at 
>>> org.apereo.cas.web.flow.CasFlowHandlerAdapter.handle(CasFlowHandlerAdapter.java:35)
>>>  
>>> ~[cas-server-core-webflow-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) 
>>> ~[servlet-api.jar:6.0]
>>>         at 
>>> org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
>>>  
>>> ~[spring-webmvc-6.2.5.jar:6.2.5]
>>>         at 
>>> jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) 
>>> ~[servlet-api.jar:6.0]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
>>> ~[tomcat-websocket.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
>>>  
>>> ~[spring-web-6.2.5.jar:6.2.5]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.web.support.filters.RequestParameterPolicyEnforcementFilter.doFilter(RequestParameterPolicyEnforcementFilter.java:393)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
>>>  
>>> ~[catalina.jar:10.1.46]
>>>         at 
>>> org.apereo.cas.web.support.filters.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:196)
>>>  
>>> ~[cas-server-core-web-api-7.2.6.jar:7.2.6]
>>>         ... 102 more
>>> Le mercredi 15 octobre 2025 à 17:50:58 UTC-4, Raph a écrit :
>>>
>>> Migrating from 6.6.7 to 7.2.6.
>>> When the mfa isnt bypassed in my service, a password reset returns the 
>>> following message. The mfa works on login, so it's not an unavailable 
>>> service.
>>>
>>>
>>> Error: jakarta.servlet.ServletException: Request processing failed: 
>>> org.springframework.webflow.engine.NoMatchingTransitionException: No 
>>> transition found on occurence of event 'unavailable' in state 'mfa-simple' 
>>> of flow 'pswdreset' -- valid transitional criteria are 
>>> array<TransitionCriteria>[resumePasswordReset, success] -- likely 
>>> programmer error, check the set of TransitionCriteria for this state 
>>>
>>> In another environnement still in 6.6, I noticr that there's no mfa when 
>>> resetting a password, but there's one on login. I dont expect there to be 
>>> one either (?).
>>>
>>> Anyone else on 7.2.6+ using simple-mfa without trouble?
>>>
>>> A fresh build with and without the same implements/templates encounters 
>>> the same error on my side.
>>>
>>> -- 
>>> - Website: https://apereo.github.io/cas
>>> - List Guidelines: https://goo.gl/1VRrw7
>>> - Contributions: https://goo.gl/mh7qDG
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "CAS Community" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To view this discussion visit 
>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/56ee93a0-601a-4d31-b808-89dc6823f7a9n%40apereo.org
>>>  
>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/56ee93a0-601a-4d31-b808-89dc6823f7a9n%40apereo.org?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> -- 
>>> - Website: https://apereo.github.io/cas
>>> - List Guidelines: https://goo.gl/1VRrw7
>>> - Contributions: https://goo.gl/mh7qDG
>>> --- 
>>>
>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "CAS Community" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/a/apereo.org/d/topic/cas-user/b-qDsXp3_m4/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> To view this discussion visit 
>>> https://groups.google.com/a/apereo.org/d/msgid/cas-user/YQBP288MB0081FAE67FA2EC1B9F183E07CEF6A%40YQBP288MB0081.CANP288.PROD.OUTLOOK.COM
>>>  
>>> <https://groups.google.com/a/apereo.org/d/msgid/cas-user/YQBP288MB0081FAE67FA2EC1B9F183E07CEF6A%40YQBP288MB0081.CANP288.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
- Website: https://apereo.github.io/cas
- List Guidelines: https://goo.gl/1VRrw7
- Contributions: https://goo.gl/mh7qDG
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/248bc7b1-9cd4-4bea-bd08-cf44ca1aecedn%40apereo.org.

Reply via email to