1<?xml version="1.0" encoding="UTF-8"?>
2<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
5
6    <display-name>Ubiquiti Networks: Management Console</display-name>
7
8    <servlet>
9        <servlet-name>UniFiResourceServlet</servlet-name>
10        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
11        <init-param>
12            <param-name>precompressed</param-name>
13            <param-value>true</param-value>
14        </init-param>
15        <load-on-startup>1</load-on-startup>
16    </servlet>
17    <servlet-mapping>
18        <servlet-name>UniFiResourceServlet</servlet-name>
19        <url-pattern>/app-unifi/*</url-pattern>
20    </servlet-mapping>
21
22    <!-- Device Management Servlets -->
23    <servlet>
24        <servlet-name>InformServlet</servlet-name>
25        <servlet-class>com.ubnt.net.InformServlet</servlet-class>
26        <load-on-startup>1</load-on-startup>
27    </servlet>
28    <servlet-mapping>
29        <servlet-name>InformServlet</servlet-name>
30        <url-pattern>/inform</url-pattern>
31    </servlet-mapping>
32
33    <servlet>
34        <servlet-name>ElbServlet</servlet-name>
35        <servlet-class>com.ubnt.net.ElbServlet</servlet-class>
36        <load-on-startup>1</load-on-startup>
37    </servlet>
38    <servlet-mapping>
39        <servlet-name>ElbServlet</servlet-name>
40        <url-pattern>/elb</url-pattern>
41    </servlet-mapping>
42
43    <!-- API Servlets -->
44    <servlet>
45        <servlet-name>ApiServlet</servlet-name>
46        <servlet-class>com.ubnt.ace.api.ApiServlet</servlet-class>
47        <load-on-startup>1</load-on-startup>
48    </servlet>
49    <servlet-mapping>
50        <servlet-name>ApiServlet</servlet-name>
51        <url-pattern>/api/*</url-pattern>
52    </servlet-mapping>
53
54    <!-- Download Servlet -->
55    <servlet>
56        <servlet-name>DownloadServlet</servlet-name>
57        <servlet-class>com.ubnt.ace.view.DownloadServlet</servlet-class>
58    </servlet>
59    <servlet-mapping>
60        <servlet-name>DownloadServlet</servlet-name>
61        <url-pattern>/dl/*</url-pattern>
62    </servlet-mapping>
63    <servlet-mapping>
64        <servlet-name>DownloadServlet</servlet-name>
65        <url-pattern>/file/*</url-pattern>
66    </servlet-mapping>
67    <servlet-mapping>
68        <servlet-name>DownloadServlet</servlet-name>
69        <url-pattern>/diag/*</url-pattern>
70    </servlet-mapping>
71
72    <!-- Upload Servlet -->
73    <servlet>
74        <servlet-name>UploadServlet</servlet-name>
75        <servlet-class>com.ubnt.ace.view.UploadServlet</servlet-class>
76    </servlet>
77    <servlet-mapping>
78        <servlet-name>UploadServlet</servlet-name>
79        <url-pattern>/upload/*</url-pattern>
80    </servlet-mapping>
81
82    <!-- Stream Servlet -->
83    <servlet>
84        <servlet-name>StreamServlet</servlet-name>
85        <servlet-class>com.ubnt.ace.view.StreamServlet</servlet-class>
86        <async-supported>true</async-supported>
87    </servlet>
88    <servlet-mapping>
89        <servlet-name>StreamServlet</servlet-name>
90        <url-pattern>/stream/output/*</url-pattern>
91    </servlet-mapping>
92
93    <!-- handles print requests -->
94    <servlet>
95        <servlet-name>PrintServlet</servlet-name>
96        <servlet-class>com.ubnt.ace.view.PrintServlet</servlet-class>
97    </servlet>
98    <servlet-mapping>
99        <servlet-name>PrintServlet</servlet-name>
100        <url-pattern>/print/*</url-pattern>
101    </servlet-mapping>
102
103    <!-- handles the guest portal -->
104    <servlet>
105        <servlet-name>GuestServlet</servlet-name>
106        <servlet-class>com.ubnt.ace.view.GuestServlet</servlet-class>
107    </servlet>
108    <servlet-mapping>
109        <servlet-name>GuestServlet</servlet-name>
110        <url-pattern>/guest/*</url-pattern>
111    </servlet-mapping>
112
113    <servlet>
114        <servlet-name>UpnpServlet</servlet-name>
115        <servlet-class>com.ubnt.ace.view.UpnpServlet</servlet-class>
116    </servlet>
117    <servlet-mapping>
118        <servlet-name>UpnpServlet</servlet-name>
119        <url-pattern>/upnp</url-pattern>
120    </servlet-mapping>
121
122    <!--
123        status servlet is used by the Launcher to query the current
124        status of the server during starting up
125    -->
126    <servlet>
127        <servlet-name>ServiceServlet</servlet-name>
128        <servlet-class>com.ubnt.ace.view.ServiceServlet</servlet-class>
129    </servlet>
130    <servlet-mapping>
131        <servlet-name>ServiceServlet</servlet-name>
132        <url-pattern>/status</url-pattern>
133    </servlet-mapping>
134    <servlet-mapping>
135        <servlet-name>ServiceServlet</servlet-name>
136        <url-pattern>/global-info</url-pattern>
137    </servlet-mapping>
138    <servlet-mapping>
139        <servlet-name>ServiceServlet</servlet-name>
140        <url-pattern>/ident</url-pattern>
141    </servlet-mapping>
142    <servlet-mapping>
143        <servlet-name>ServiceServlet</servlet-name>
144        <url-pattern>/services/*</url-pattern>
145    </servlet-mapping>
146    <servlet-mapping>
147        <servlet-name>ServiceServlet</servlet-name>
148        <url-pattern>/local-sta/*</url-pattern>
149    </servlet-mapping>
150    <servlet-mapping>
151        <servlet-name>ServiceServlet</servlet-name>
152        <url-pattern>/element_adopt</url-pattern>
153    </servlet-mapping>
154    <!--  UI Servlets -->
155
156    <!--
157        <servlet>
158        <servlet-name>shell</servlet-name>
159        <jsp-file>/shell.html</jsp-file>
160        </servlet>
161    -->
162
163    <!--
164        <servlet-mapping>
165        <servlet-name>shell</servlet-name>
166        <url-pattern>/shell</url-pattern>
167        </servlet-mapping>
168    -->
169
170    <filter>
171        <filter-name>AuthFilter</filter-name>
172        <filter-class>com.ubnt.ace.view.AuthFilter</filter-class>
173        <async-supported>true</async-supported>
174        <!--
175            <init-param>
176            <param-name>skip</param-name>
177            <param-value>false</param-value>
178            </init-param>
179        -->
180    </filter>
181
182    <filter>
183        <filter-name>UbiosHttpsFilter</filter-name>
184        <filter-class>com.ubnt.ace.view.UbiosHttpsFilter</filter-class>
185        <async-supported>true</async-supported>
186    </filter>
187
188    <filter>
189        <filter-name>WsEndpointFilter</filter-name>
190        <filter-class>com.ubnt.ace.ws.WsEndpointFilter</filter-class>
191        <async-supported>true</async-supported>
192    </filter>
193
194    <filter>
195        <filter-name>ResourceRewriteFilter</filter-name>
196        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
197        <async-supported>true</async-supported>
198        <init-param>
199            <param-name>confPath</param-name>
200            <param-value>/WEB-INF/resourcerewrite.xml</param-value>
201        </init-param>
202        <init-param>
203            <param-name>logLevel</param-name>
204            <param-value>WARN</param-value>
205        </init-param>
206    </filter>
207
208    <filter>
209        <filter-name>UrlRewriteFilter</filter-name>
210        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
211        <async-supported>true</async-supported>
212        <init-param>
213            <param-name>logLevel</param-name>
214            <param-value>WARN</param-value>
215        </init-param>
216    </filter>
217
218    <filter>
219        <filter-name>requestMetricsFilter</filter-name>
220        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
221        <async-supported>true</async-supported>
222    </filter>
223
224    <!--
225        UbiosHttpsFilter allows to call only specific endpoints on the https connector with ubios
226    -->
227    <filter-mapping>
228        <filter-name>UbiosHttpsFilter</filter-name>
229        <url-pattern>*</url-pattern>
230    </filter-mapping>
231
232    <filter-mapping>
233        <filter-name>ResourceRewriteFilter</filter-name>
234        <url-pattern>/manage/*</url-pattern>
235        <url-pattern>/setup/*</url-pattern>
236        <dispatcher>REQUEST</dispatcher>
237        <dispatcher>ASYNC</dispatcher>
238    </filter-mapping>
239
240    <!--
241        AuthFilter handles all the requests to the Admin interface ONLY
242    -->
243    <filter-mapping>
244        <filter-name>AuthFilter</filter-name>
245        <url-pattern>/</url-pattern>
246        <url-pattern>/v2/*</url-pattern>
247        <url-pattern>/manage/*</url-pattern>
248        <url-pattern>/logout/*</url-pattern>
249        <url-pattern>/setup/*</url-pattern>
250        <url-pattern>/guest/preview/*</url-pattern>
251        <url-pattern>/api/*</url-pattern>
252        <url-pattern>/wss/*</url-pattern>
253        <url-pattern>/file/*</url-pattern>
254        <url-pattern>/print/*</url-pattern>
255        <url-pattern>/op/*</url-pattern>
256        <url-pattern>/upload/*</url-pattern>
257        <!-- /dl/firmware was intentionally omitted here -->
258        <url-pattern>/dl/cloud-autobackup/*</url-pattern>
259        <url-pattern>/dl/autobackup/*</url-pattern>
260        <url-pattern>/dl/backup/*</url-pattern>
261        <url-pattern>/dl/logfile/*</url-pattern>
262        <url-pattern>/dl/support/*</url-pattern>
263        <url-pattern>/diag/*</url-pattern>
264        <dispatcher>REQUEST</dispatcher>
265        <dispatcher>ASYNC</dispatcher>
266    </filter-mapping>
267
268    <filter-mapping>
269        <filter-name>requestMetricsFilter</filter-name>
270        <url-pattern>/api/*</url-pattern>
271        <url-pattern>/v2/api/*</url-pattern>
272        <dispatcher>REQUEST</dispatcher>
273        <dispatcher>ASYNC</dispatcher>
274    </filter-mapping>
275
276    <filter-mapping>
277        <filter-name>UrlRewriteFilter</filter-name>
278        <url-pattern>/manage/*</url-pattern>
279        <url-pattern>/setup/*</url-pattern>
280        <url-pattern>/verify/*</url-pattern>
281        <url-pattern>/sso_login/*</url-pattern>
282        <url-pattern>/api/ucore/support-dump</url-pattern>
283        <url-pattern>/api/ucore/backup/*</url-pattern>
284        <url-pattern>/api/set/setting/provider_capabilities</url-pattern>
285        <dispatcher>REQUEST</dispatcher>
286        <dispatcher>ASYNC</dispatcher>
287    </filter-mapping>
288
289    <filter-mapping>
290        <filter-name>WsEndpointFilter</filter-name>
291        <url-pattern>/wss/*</url-pattern>
292        <dispatcher>REQUEST</dispatcher>
293        <dispatcher>ASYNC</dispatcher>
294    </filter-mapping>
295
296    <session-config>
297        <session-timeout>60</session-timeout>
298    </session-config>
299</web-app>
300