public FilterInfo verifyFilter(String sFilterCode)
            throws CompilationFailedException, IllegalAccessException, InstantiationException {
        Class<?> groovyClass = compileGroovy(sFilterCode);
        Object instance = instantiateClass(groovyClass);
        checkZuulFilterInstance(instance);
        BaseFilter filter = (BaseFilter) instance;

        String filter_id = FilterInfo.buildFilterID(
                ZuulApplicationInfo.getApplicationName(), filter.filterType(), groovyClass.getSimpleName());

        return new FilterInfo(
                filter_id,
                sFilterCode,
                filter.filterType(),
                groovyClass.getSimpleName(),
                filter.disablePropertyName(),
                "" + filter.filterOrder(),
                ZuulApplicationInfo.getApplicationName());
    }
@Test
    void testVerify() throws Exception {
        FilterInfo filterInfo1 = FilterVerifier.INSTANCE.verifyFilter(sGoodGroovyScriptFilter);
        assertNotNull(filterInfo1);
        assertEquals("null:filter:in", filterInfo1.getFilterID());
        assertEquals(FilterType.INBOUND, filterInfo1.getFilterType());
        assertEquals("filter", filterInfo1.getFilterName());
        assertFalse(filterInfo1.isActive());
        assertFalse(filterInfo1.isCanary());

        assertThrows(InstantiationException.class, () -> FilterVerifier.INSTANCE.verifyFilter(sNotZuulFilterGroovy));

        assertThrows(CompilationFailedException.class, () -> FilterVerifier.INSTANCE.verifyFilter(sCompileFailCode));
    }