private static RestrictionType allowedByDateTimeRestrictions(
            String afterTimeString, String beforeTimeString) {
        
        // Set a default restriction.
        RestrictionType dateTimeRestriction = RestrictionType.IMPLICIT_ALLOW;
        
        // Check the after string and make sure that now is after that date.
        if (afterTimeString != null && !afterTimeString.isEmpty()) {
            Date now = new Date();
            try {
                Date afterTime = DateTimeRestrictionField.parse(afterTimeString);
                if (now.before(afterTime))
                    return RestrictionType.EXPLICIT_DENY;
            }
            catch (ParseException e) {
                LOGGER.warn("Failed to parse date and time string: {}:", e.getMessage());
                LOGGER.debug("Parse exception while parsing date and time string.", e);
                return RestrictionType.IMPLICIT_DENY;
            }
            dateTimeRestriction = RestrictionType.EXPLICIT_ALLOW;
        }
        
        // Check the before string and make sure that now is prior to that date.
        if (beforeTimeString != null && !beforeTimeString.isEmpty()) {
            Date now = new Date();
            try {
                Date beforeTime = DateTimeRestrictionField.parse(beforeTimeString);
                if (now.after(beforeTime))
                    return RestrictionType.EXPLICIT_DENY;
            }
            catch (ParseException e) {
                LOGGER.warn("Failed to parse date and time string: {}:", e.getMessage());
                LOGGER.debug("Parse exception while parsing date and time string.", e);
                return RestrictionType.IMPLICIT_DENY;
            }
            dateTimeRestriction = RestrictionType.EXPLICIT_ALLOW;
            
        }
        
        // Return the determined RestrictionType for the given date/time strings.
        return dateTimeRestriction;
    }
Given the provided strings of an absolute date after which an action is
valid and before which an action is valid, parse the strings into Date
objects and determine if the current date and time falls within the
provided window, returning the appropriate restriction type.

@param afterTimeString
    The string that has the date and time value after which the activity
    is allowed.

@param beforeTimeString
    The string that has the date and time value before which the activity
    is allowed.

@return 
    The RestrictionType that represents the allowed or denied state of
    the activity.
extensions/guacamole-auth-restrict/src/main/java/org/apache/guacamole/auth/restrict/RestrictionVerificationService.java