/** * Determines if this object may be used in the current runtime environment. * Fathom settings are considered as well as runtime modes. * * @param settings * @param object * @return true if the object may be used */ public static boolean allowInstance(Settings settings, Object object) { Preconditions.checkNotNull(object, "Can not check runtime permissions on a null instance!"); if (object instanceof Method) { return allowMethod(settings, (Method) object); } return allowClass(settings, object.getClass()); }
/** * Discover Route methods. * * @param classes * @return discovered methods */ protected Map<Method, Class<? extends Annotation>> discoverMethods(Collection<Class<?>> classes) { // collect the allowed annotated methods Map<Method, Class<? extends Annotation>> discoveredMethods = new LinkedHashMap<>(); // discover all annotated controllers and methods for (Class<?> controllerClass : classes) { for (Method method : controllerClass.getDeclaredMethods()) { if (RequireUtil.allowMethod(settings, method)) { for (Annotation annotation : method.getAnnotations()) { Class<? extends Annotation> annotationClass = annotation.annotationType(); if (httpMethodAnnotationClasses.contains(annotationClass)) { discoveredMethods.put(method, annotationClass); break; } } } } } return discoveredMethods; }
/** * Discover Route methods. * * @param classes * @return discovered methods */ protected Map<Method, Class<? extends Annotation>> discoverMethods(Collection<Class<?>> classes) { // collect the allowed annotated methods Map<Method, Class<? extends Annotation>> discoveredMethods = new LinkedHashMap<>(); // discover all annotated controllers and methods for (Class<?> controllerClass : classes) { for (Method method : controllerClass.getDeclaredMethods()) { if (RequireUtil.allowMethod(settings, method)) { for (Annotation annotation : method.getAnnotations()) { Class<? extends Annotation> annotationClass = annotation.annotationType(); if (httpMethodAnnotationClasses.contains(annotationClass)) { discoveredMethods.put(method, annotationClass); break; } } } } } return discoveredMethods; }
if (!RequireUtil.allowMethod(settings, controllerHandler.getControllerMethod())) { continue;
if (!RequireUtil.allowMethod(settings, controllerHandler.getControllerMethod())) { continue;