WIP: proxy
[maven-thymeleaf-skin] / src / main / java / de / juplo / thymeproxy / Application.java
1 package de.juplo.thymeproxy;
2
3 import java.util.Collections;
4 import java.util.HashMap;
5 import java.util.Map;
6 import org.apache.http.impl.client.CloseableHttpClient;
7 import org.springframework.boot.SpringApplication;
8 import org.springframework.boot.autoconfigure.SpringBootApplication;
9 import org.springframework.context.annotation.Bean;
10 import org.springframework.core.Ordered;
11 import org.springframework.core.env.Environment;
12 import org.springframework.web.HttpRequestHandler;
13 import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
14
15
16 @SpringBootApplication
17 public class Application
18 {
19   @Bean
20   public SimpleUrlHandlerMapping proxiedHandlerMapping(
21       ProxyHttpRequestHandler handler
22       )
23   {
24     SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
25     mapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
26     Map<String, HttpRequestHandler> mappings = new HashMap<>();
27     mappings.put("/*.html", handler);
28     mappings.put("/*/", handler);
29     mappings.put("/*/*.html", handler);
30     mappings.put("/**/", handler);
31     mappings.put("/**/*.html", handler);
32     mapping.setUrlMap(mappings);
33         return mapping;
34   }
35
36   @Bean
37   public ProxyHttpRequestHandler proxiedRequestHandler(
38       CloseableHttpClient client,
39       Environment env
40       )
41   {
42     ProxyHttpRequestHandler handler = new ProxyHttpRequestHandler();
43     handler.setClient(client);
44     handler.setOrigin(env.getProperty("thymeproxy.origin"));
45     handler.setTtl(30000l);
46     return handler;
47   }
48
49
50   public static void main(String[] args)
51   {
52     SpringApplication.run(Application.class, args);
53   }
54 }