@Nullable
    public RouterFunction<ServerResponse> create(ReverseProxy reverseProxy, String pluginName) {
        return createReverseProxyRouterFunction(reverseProxy, nullSafePluginName(pluginName));
    }
@Test
    void shouldProxyStaticResourceWithCacheControl() throws FileNotFoundException {
        var cache = webProperties.getResources().getCache();
        cache.setUseLastModified(true);
        cache.getCachecontrol().setMaxAge(Duration.ofDays(7));

        var routerFunction = factory.create(mockReverseProxy(), "fakeA");
        assertNotNull(routerFunction);
        var webClient = WebTestClient.bindToRouterFunction(routerFunction).build();

        var pluginWrapper = Mockito.mock(PluginWrapper.class);
        var pluginRoot = ResourceUtils.getURL("classpath:plugin/plugin-for-reverseproxy/");
        var classLoader = new URLClassLoader(new URL[] {pluginRoot});
        when(pluginWrapper.getPluginClassLoader()).thenReturn(classLoader);
        when(pluginManager.getPlugin("fakeA")).thenReturn(pluginWrapper);

        webClient.get().uri("/plugins/fakeA/assets/static/test.txt")
            .exchange()
            .expectStatus().isOk()
            .expectHeader().cacheControl(CacheControl.maxAge(Duration.ofDays(7)))
            .expectHeader().value(HttpHeaders.LAST_MODIFIED, Assertions::assertNotNull)
            .expectBody(String.class).isEqualTo("Fake content.");
    }