protected boolean shouldSkipInterruptForGroovyScript(final RequestContext requestContext,
                                                         final WebBasedRegisteredService registeredService,
                                                         final Authentication authentication) throws Throwable {
        val policy = registeredService.getWebflowInterruptPolicy();
        if (StringUtils.isBlank(policy.getGroovyScript())) {
            return false;
        }

        val groovyScript = SpringExpressionLanguageValueResolver.getInstance().resolve(policy.getGroovyScript());
        val script = scriptResourceCacheManager.getObject().resolveScriptableResource(
            groovyScript, registeredService.getServiceId(), registeredService.getName());

        val attributes = new HashMap<>(authentication.getAttributes());
        attributes.putAll(authentication.getPrincipal().getAttributes());

        val args = CollectionUtils.<String, Object>wrap(
            "attributes", attributes,
            "username", authentication.getPrincipal().getId(),
            "registeredService", registeredService,
            "service", WebUtils.getService(requestContext),
            "logger", LOGGER);
        script.setBinding(args);
        return !script.execute(args.values().toArray(), Boolean.class);
    }
This is {@link InquireInterruptAction}.

@author Misagh Moayyed
@since 5.2.0
support/cas-server-support-interrupt-webflow/src/main/java/org/apereo/cas/interrupt/webflow/actions/InquireInterruptAction.java