1 package de.juplo.thymeproxy;
3 import java.util.HashMap;
5 import org.apache.http.impl.client.CloseableHttpClient;
6 import org.springframework.boot.SpringApplication;
7 import org.springframework.boot.autoconfigure.SpringBootApplication;
8 import org.springframework.context.annotation.Bean;
9 import org.springframework.core.Ordered;
10 import org.springframework.core.env.Environment;
11 import org.springframework.web.servlet.mvc.UrlFilenameViewController;
12 import org.thymeleaf.resourceresolver.IResourceResolver;
13 import org.thymeleaf.resourceresolver.UrlResourceResolver;
14 import org.thymeleaf.templateresolver.TemplateResolver;
17 @SpringBootApplication
18 public class Application
21 public RegexUrlHandlerMapping proxiedHandlerMapping(
22 ProxyHttpRequestHandler proxy,
23 UrlFilenameViewController views
26 RegexUrlHandlerMapping mapping = new RegexUrlHandlerMapping();
27 mapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
28 Map<String, Object> mappings = new HashMap<>();
29 mappings.put("/thymeleaf/.*\\.html", proxy);
30 mappings.put("/css/.+", proxy);
31 mappings.put("/js/.+", proxy);
32 mappings.put("/fonts/.+", proxy);
33 mappings.put(".*\\.html", views);
34 mapping.setUrlMap(mappings);
39 public ProxyHttpRequestHandler proxyHttpRequestHandler(
40 CloseableHttpClient client,
44 ProxyHttpRequestHandler handler = new ProxyHttpRequestHandler();
45 handler.setClient(client);
46 handler.setOrigin(env.getProperty("thymeproxy.origin"));
47 handler.setTtl(30000l);
52 public UrlFilenameViewController urlFilenameViewController()
54 return new UrlFilenameViewController();
58 public static void main(String[] args)
60 SpringApplication.run(Application.class, args);