]> git.evergreen-ils.org Git - working/Hatch.git/blob - hatch.xml
Hatch: use jetty XML for all configuration; SSL recovered.
[working/Hatch.git] / hatch.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
3
4 <Configure id="Server" class="org.eclipse.jetty.server.Server">
5
6   <!--
7   <Set class="org.eclipse.jetty.util.log.StdErrLog" name="level">LEVEL_DEBUG</Set>
8   -->
9   <Get id="Logger" class="org.eclipse.jetty.util.log.Log" name="log"/>
10   <Ref id="Logger">
11     <Set name="debugEnabled">true</Set>
12   </Ref>
13
14   <Set class="org.evergreen_ils.hatch.HatchWebSocketHandler" name="trustedDomains">
15     <Array type="String">
16         <!-- 
17         List of origin domains which are allowed to connect to Hatch.
18         If the first item in the list is "*", then all domains are 
19         trusted, which is useful for testing.
20         -->
21         <Item>*</Item>
22     </Array>
23   </Set>
24
25   <!--
26   <Set class="org.evergreen_ils.hatch.HatchWebSocketHandler" 
27     name="profileDirectory"></Set>
28   -->
29
30   <!-- basic HTTP setup -->
31   <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">   
32     <Set name="secureScheme">https</Set>                                     
33     <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
34     <Set name="outputBufferSize"><Property name="jetty.output.buffer.size" default="32768" /></Set>
35     <Set name="requestHeaderSize"><Property name="jetty.request.header.size" default="8192" /></Set>
36     <Set name="responseHeaderSize"><Property name="jetty.response.header.size" default="8192" /></Set>
37     <Set name="sendServerVersion"><Property name="jetty.send.server.version" default="true" /></Set>
38     <Set name="sendDateHeader"><Property name="jetty.send.date.header" default="false" /></Set>
39     <Set name="headerCacheSize">512</Set>                                    
40   </New>
41
42   <!-- SSL configuration -->
43   <!-- Using the stock Jetty certificates for now.  
44        To set a temporary trust on the cert, navigate to 
45        https://<hostname>:8443/ and confirm the cert is trusted -->
46   <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
47     <!-- TODO: make this better -->
48     <Set name="KeyStorePath"><Property name="jetty.home" default="." />/jetty-distribution-9.1.4.v20140401/etc/keystore</Set>
49     <Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>    
50     <Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>          
51     <Set name="TrustStorePath"><Property name="jetty.home" default="." />/jetty-distribution-9.1.4.v20140401/etc/keystore</Set>
52     <Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>  
53   </New> 
54
55   <New id="sslHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">  
56     <Arg><Ref refid="httpConfig"/></Arg>                                       
57     <Call name="addCustomizer">                                                
58       <Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
59     </Call>                                                                    
60   </New>                                                                       
61
62   <!-- SSL HTTP connector -->
63   <Call name="addConnector">                               
64     <Arg>                                                                      
65       <New class="org.eclipse.jetty.server.ServerConnector">                   
66         <Arg name="server"><Ref refid="Server" /></Arg>                        
67           <Arg name="factories">                                               
68             <Array type="org.eclipse.jetty.server.ConnectionFactory">          
69               <Item>                                                           
70                 <New class="org.eclipse.jetty.server.SslConnectionFactory">    
71                   <Arg name="next">http/1.1</Arg>                              
72                   <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
73                 </New>                                                         
74               </Item>                                                          
75               <Item>                                                           
76                 <New class="org.eclipse.jetty.server.HttpConnectionFactory">   
77                   <Arg name="config"><Ref refid="sslHttpConfig"/></Arg>        
78                 </New>                                                         
79               </Item>                                                          
80             </Array>                                                           
81           </Arg>                                                               
82           <Set name="host"><Property name="jetty.host" /></Set>                
83           <Set name="port"><Property name="jetty.secure.port" default="8443" /></Set>  
84           <Set name="idleTimeout"><Property name="https.timeout" default="30000"/></Set>
85           <Set name="soLingerTime"><Property name="https.soLingerTime" default="-1"/></Set>
86       </New>                                                                 
87     </Arg>                                                                     
88   </Call> 
89
90
91   <!-- HTTP connector -->
92   <Call name="addConnector">
93     <Arg>
94       <New class="org.eclipse.jetty.server.ServerConnector">
95         <Arg name="server">
96           <Ref refid="Server"/>
97         </Arg>
98         <Arg name="factories">
99           <Array type="org.eclipse.jetty.server.ConnectionFactory">
100             <Item>
101               <New class="org.eclipse.jetty.server.HttpConnectionFactory">
102                 <Arg name="config"><Ref refid="httpConfig" /></Arg> 
103               </New>
104             </Item>
105           </Array>
106         </Arg>
107         <Set name="host"><Property name="jetty.host"/></Set>
108         <Set name="port"><Property name="jetty.port" default="8080"/></Set>
109         <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
110         <Set name="soLingerTime"><Property name="http.soLingerTime" default="-1"/></Set>
111       </New>
112     </Arg>
113   </Call>
114
115   <!-- websockets handler setup -->
116   <Set name="handler">
117     <New class="org.eclipse.jetty.server.handler.HandlerList">
118       <Set name="handlers">
119         <Array type="org.eclipse.jetty.server.Handler">
120           <Item>
121             <New class="org.eclipse.jetty.servlet.ServletHandler">
122               <Call id="proxyHolder" name="addServletWithMapping">
123                 <Arg>
124                   <Property name="jetty.proxy.servletClass" 
125                     default="org.evergreen_ils.hatch.HatchWebSocketServlet"/>
126                 </Arg>
127                 <Arg>
128                   <Property name="jetty.proxy.servletMapping" default="/hatch"/>
129                 </Arg>
130                 <Call name="setInitParameter">
131                   <Arg>maxThreads</Arg>
132                   <Arg>
133                     <Property name="jetty.proxy.maxThreads" default="128"/>
134                   </Arg>
135                 </Call>
136                 <Call name="setInitParameter">
137                   <Arg>maxConnections</Arg>
138                   <Arg>
139                     <Property name="jetty.proxy.maxConnections" default="256"/>
140                   </Arg>
141                 </Call>
142                 <Call name="setInitParameter">
143                   <Arg>idleTimeout</Arg>
144                   <Arg>
145                     <Property name="jetty.proxy.idleTimeout" default="60000"/>
146                   </Arg>
147                 </Call>
148                 <Call name="setInitParameter">
149                   <Arg>timeout</Arg>
150                   <Arg>
151                     <Property name="jetty.proxy.timeout" default="60000"/>
152                   </Arg>
153                 </Call>
154               </Call>
155             </New>
156           </Item>
157         </Array>
158       </Set>
159     </New>
160   </Set>
161
162 </Configure>