Context Cas 7.3.4/Redis 8 for tickets,services and mfa devices

Hi,
I would like to try the trigger defined here : 
https://apereo.github.io/cas/7.3.x/mfa/Configuring-Multifactor-Authentication-Triggers-Global-PrincipalAttribute-Predicate.html.
I've set this :
cas.authn.mfa.triggers.principal.global-principal-attribute-predicate.location: 
file:/etc/cas/config/mfa_predicate.groovy

But … this script is not evaluated when starting the webapp or in the 
authentication flow ...
Nothing in the logs.
All other groovies are being evaluated in my context such as 
cas.authn.mfa.groovy-script.location, 
cas.authn.mfa.gauth.bypass.groovy.location, etc. without any problem.
Did I miss Something ?

Some of the deps I used to compile :

    //MFA TOTP
   implementation "org.apereo.cas:cas-server-support-gauth"
   implementation "org.apereo.cas:cas-server-support-gauth-core"
   implementation "org.apereo.cas:cas-server-support-gauth-core-mfa"
   implementation "org.apereo.cas:cas-server-support-gauth-redis"

    // MFA FIDO2 WEBAUTHN
    implementation "org.apereo.cas:cas-server-support-webauthn"
    implementation "org.apereo.cas:cas-server-support-webauthn-redis"

    //MFA TRUSTED DEVICE
    implementation "org.apereo.cas:cas-server-support-trusted-mfa"
    implementation "org.apereo.cas:cas-server-support-trusted-mfa-redis"

    implementation "org.apereo.cas:cas-server-support-redis-authentication"
    implementation "org.apereo.cas:cas-server-support-redis-core"

// GROOVY SCRIPTING
    implementation "org.apereo.cas:cas-server-core-scripting"


For info, the content of the groovy script 
/etc/cas/config/mfa_predicate.groovy is below, but anyway, it does not seem 
to be read

import org.apereo.cas.authentication.*
import java.util.function.*
import org.apereo.cas.services.*

class PredicateExample implements 
Predicate<MultifactorAuthenticationProvider> {

    def service
    def principal
    def providers
    def logger

    public PredicateExample(service, principal, providers, logger) {
        this.service = service
        this.principal = principal
        this.providers = providers
        this.logger = logger
    }

    @Override
    boolean test(final MultifactorAuthenticationProvider p) {
        logger.info("Testing provider {}", p.getId())
        if (p.matches("mfa-gauth")) {
           logger.info("Provider {} is available. Checking eligibility...", 
p.getId())
           if (p.isAvailable(this.service)) {
               logger.info("Provider {} matched. Good to go!", p.getId())
               return true;
           }
           logger.info("Skipping provider {}. Match failed.", p.getId())
           return false;
        }
        logger.info("Provider {} cannot be reached", p.getId())
        return false
    }
}

-- 
- 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/f5410fb5-ae02-42d4-9f11-83c5b56366b9n%40apereo.org.

Reply via email to