Pages enfant
  • Retour de l'URN sur mise en place de CAS 6.4.1

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
import java.util.*

class SampleGroovyEventResolver {
    def String run(service, registeredService, authentication, httpRequest, logger, ... other_args) {

	def mobile = authentication.principal.attributes.mobile
	def ip = httpRequest.getRemoteAddr()
	def memberOf = authentication.principal.attributes.memberOf

	/*
	logger.info("ip : [{}]", httpRequest.getRemoteAddr())
	logger.info("mobile : [{}]", mobile)
	logger.info("registeredService.id : [{}]", registeredService.id)
	*/

        // d'abord les services avec MFA obligatoire

        if ((int)registeredService.id in [22] && 'cn=from.grouper.admin,ou=groups,dc=univ-rouen,dc=fr' in memberOf) {
	    logger.warn("mfa required for grouper !", authentication.principal.id)
	    return "mfa-esupotp"
        }

        // maintenant les services avec MFA uniquement si activé
 
        if(!('cn=from.cas.otp,ou=groups,dc=univ-rouen,dc=fr' in memberOf)) {
            // l'utilisateur n'a pas activé le MFA (fonctionne grâce à un groupe LDAP reflétant l'activation du MFA dans esup-otp-manager)
            return null;
        }

        if ((int)registeredService.id in [12,13,14,18,21,22] && !ip.startsWith("10.0.1.")) {
	    logger.warn("mfa for [{}] !", authentication.principal.id)
	    return "mfa-esupotp"
        }

        if ((int)registeredService.id in [11, 18] && !ip.startsWith("10.0.1.") && 'cn=for.multipass.admin,ou=groups,dc=univ-rouen,dc=fr' in memberOf) {
	    logger.warn("mfa for [{}] !", authentication.principal.id)
	    return "mfa-esupotp"
        }
	return null
    }
}


...