@SuppressWarnings("checkstyle:NPathComplexity")
    public void disableSessionValidation() {
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Stopping Quartz session validation job...");
        }

        Scheduler scheduler;
        try {
            scheduler = getScheduler();
            if (scheduler == null) {
                if (LOGGER.isWarnEnabled()) {
                    LOGGER.warn("getScheduler() method returned a null Quartz scheduler, which is unexpected.  Please "
                            + "check your configuration and/or implementation.  Returning quietly since there is no "
                            + "validation job to remove (scheduler does not exist).");
                }
                return;
            }
        } catch (SchedulerException e) {
            if (LOGGER.isWarnEnabled()) {
                LOGGER.warn("Unable to acquire Quartz Scheduler.  Ignoring and returning (already stopped?)", e);
            }
            return;
        }

        try {
            scheduler.unscheduleJob(TriggerKey.triggerKey(JOB_NAME, Scheduler.DEFAULT_GROUP));
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Quartz session validation job stopped successfully.");
            }
        } catch (SchedulerException e) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Could not cleanly remove SessionValidationJob from Quartz scheduler.  "
                        + "Ignoring and stopping.", e);
            }
        }

        this.enabled = false;

        if (schedulerImplicitlyCreated) {
            try {
                scheduler.shutdown();
            } catch (SchedulerException e) {
                if (LOGGER.isWarnEnabled()) {
                    LOGGER.warn("Unable to cleanly shutdown implicitly created Quartz Scheduler instance.", e);
                }
            } finally {
                setScheduler(null);
                schedulerImplicitlyCreated = false;
            }
        }


    }
Starts session validation by creating a Quartz simple trigger, linking it to
the {@link QuartzSessionValidationJob}, and scheduling it with the Quartz scheduler.
support/quartz/src/main/java/org/apache/shiro/session/mgt/quartz/QuartzSessionValidationScheduler.java