WIP: proxy
[maven-thymeleaf-skin] / src / main / java / de / juplo / thymeproxy / Application.java
1 package de.juplo.thymeproxy;
2
3 import java.util.HashMap;
4 import java.util.Map;
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
12
13 @SpringBootApplication
14 public class Application
15 {
16   @Bean
17   public RegexUrlHandlerMapping proxiedHandlerMapping(
18       ProxyHttpRequestHandler handler
19       )
20   {
21     RegexUrlHandlerMapping mapping = new RegexUrlHandlerMapping();
22     mapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
23     Map<String, Object> mappings = new HashMap<>();
24     mappings.put(".*\\.html$", handler);
25     mappings.put("/css/.+", handler);
26     mappings.put("/js/.+", handler);
27     mappings.put("/fonts/.+", handler);
28     mappings.put("/.+/", handler);
29     mapping.setUrlMap(mappings);
30         return mapping;
31   }
32
33   @Bean
34   public ProxyHttpRequestHandler proxiedRequestHandler(
35       CloseableHttpClient client,
36       Environment env
37       )
38   {
39     ProxyHttpRequestHandler handler = new ProxyHttpRequestHandler();
40     handler.setClient(client);
41     handler.setOrigin(env.getProperty("thymeproxy.origin"));
42     handler.setTtl(30000l);
43     return handler;
44   }
45
46
47   public static void main(String[] args)
48   {
49     SpringApplication.run(Application.class, args);
50   }
51 }