1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee 5 https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" 6 version="5.0"> 7 8 <display-name>OpenGrok</display-name> 9 <description>A wicked fast source browser</description> 10 <context-param> 11 <description>Full path to the configuration file where OpenGrok can read its configuration</description> 12 <param-name>CONFIGURATION</param-name> 13 <param-value>/var/opengrok/etc/configuration.xml</param-value> 14 </context-param> 15 <listener> 16 <listener-class>org.opengrok.web.WebappListener</listener-class> 17 </listener> 18 <filter> 19 <filter-name>StatisticsFilter</filter-name> 20 <filter-class>org.opengrok.web.StatisticsFilter</filter-class> 21 </filter> 22 <filter-mapping> 23 <filter-name>StatisticsFilter</filter-name> 24 <url-pattern>/*</url-pattern> 25 </filter-mapping> 26 <filter> 27 <filter-name>AuthorizationFilter</filter-name> 28 <filter-class>org.opengrok.web.AuthorizationFilter</filter-class> 29 </filter> 30 <filter-mapping> 31 <filter-name>AuthorizationFilter</filter-name> 32 <url-pattern>/*</url-pattern> 33 </filter-mapping> 34 <filter> 35 <filter-name>ExpiresHalfHourFilter</filter-name> 36 <filter-class>org.opengrok.web.ResponseHeaderFilter</filter-class> 37 <init-param> 38 <param-name>Cache-Control</param-name> 39 <param-value>max-age=1800</param-value> 40 </init-param> 41 </filter> 42 <filter> 43 <filter-name>ExpiresOneDayFilter</filter-name> 44 <filter-class>org.opengrok.web.ResponseHeaderFilter</filter-class> 45 <init-param> 46 <param-name>Cache-Control</param-name> 47 <param-value>max-age=86400</param-value> 48 </init-param> 49 </filter> 50 <filter> 51 <filter-name>ExpiresOneYearFilter</filter-name> 52 <filter-class>org.opengrok.web.ResponseHeaderFilter</filter-class> 53 <init-param> 54 <param-name>Cache-Control</param-name> 55 <param-value>max-age=31536000</param-value> 56 </init-param> 57 </filter> 58 <filter-mapping> 59 <filter-name>ExpiresOneDayFilter</filter-name> 60 <url-pattern>/manifest.json</url-pattern> 61 <dispatcher>REQUEST</dispatcher> 62 </filter-mapping> 63 <filter-mapping> 64 <filter-name>ExpiresHalfHourFilter</filter-name> 65 <url-pattern>/history/*</url-pattern> 66 <url-pattern>/raw/*</url-pattern> 67 <url-pattern>/download/*</url-pattern> 68 <url-pattern>/rss/*</url-pattern> 69 <url-pattern>/error</url-pattern> 70 <url-pattern>/enoent</url-pattern> 71 <url-pattern>/eforbidden</url-pattern> 72 <dispatcher>REQUEST</dispatcher> 73 </filter-mapping> 74 <filter-mapping> 75 <filter-name>ExpiresOneYearFilter</filter-name> 76 <url-pattern>/default/*</url-pattern> 77 <url-pattern>/js/*</url-pattern> 78 <url-pattern>/webjars/*</url-pattern> 79 <dispatcher>REQUEST</dispatcher> 80 </filter-mapping> 81 <filter> 82 <filter-name>CookieFilter</filter-name> 83 <filter-class>org.opengrok.web.CookieFilter</filter-class> 84 <init-param> 85 <param-name>SameSite</param-name> 86 <param-value>Strict</param-value> 87 </init-param> 88 <init-param> 89 <param-name>Secure</param-name> 90 <param-value></param-value> 91 </init-param> 92 </filter> 93 <filter-mapping> 94 <filter-name>CookieFilter</filter-name> 95 <url-pattern>/*</url-pattern> 96 <dispatcher>REQUEST</dispatcher> 97 </filter-mapping> 98 <servlet> 99 <display-name>Source Finder</display-name> 100 <servlet-name>search</servlet-name> 101 <jsp-file>/search.jsp</jsp-file> 102 <init-param> 103 <param-name>keepgenerated</param-name> 104 <param-value>true</param-value> 105 </init-param> 106 </servlet> 107 <servlet> 108 <display-name>Source History</display-name> 109 <servlet-name>history</servlet-name> 110 <jsp-file>/history.jsp</jsp-file> 111 <init-param> 112 <param-name>keepgenerated</param-name> 113 <param-value>true</param-value> 114 </init-param> 115 </servlet> 116 <servlet> 117 <display-name>Source lister</display-name> 118 <servlet-name>lister</servlet-name> 119 <jsp-file>/list.jsp</jsp-file> 120 <init-param> 121 <param-name>keepgenerated</param-name> 122 <param-value>true</param-value> 123 </init-param> 124 </servlet> 125 <servlet> 126 <display-name>Source diffs between revisions</display-name> 127 <servlet-name>diff</servlet-name> 128 <jsp-file>/diff.jsp</jsp-file> 129 <init-param> 130 <param-name>keepgenerated</param-name> 131 <param-value>true</param-value> 132 </init-param> 133 </servlet> 134 <servlet> 135 <display-name>Shows more matching lines</display-name> 136 <servlet-name>more</servlet-name> 137 <jsp-file>/more.jsp</jsp-file> 138 </servlet> 139 <servlet> 140 <display-name>Source Changes in RSS format</display-name> 141 <servlet-name>rss</servlet-name> 142 <jsp-file>/rss.jsp</jsp-file> 143 <init-param> 144 <param-name>keepgenerated</param-name> 145 <param-value>true</param-value> 146 </init-param> 147 </servlet> 148 <servlet> 149 <display-name>OpenSearch link for current project</display-name> 150 <servlet-name>opensearch</servlet-name> 151 <jsp-file>/opensearch.jsp</jsp-file> 152 <init-param> 153 <param-name>keepgenerated</param-name> 154 <param-value>true</param-value> 155 </init-param> 156 </servlet> 157 <servlet> 158 <display-name>Raw Source lister</display-name> 159 <servlet-name>raw</servlet-name> 160 <servlet-class>org.opengrok.web.GetFile</servlet-class> 161 <init-param> 162 <param-name>keepgenerated</param-name> 163 <param-value>true</param-value> 164 </init-param> 165 </servlet> 166 <servlet> 167 <display-name>Download source</display-name> 168 <servlet-name>download</servlet-name> 169 <servlet-class>org.opengrok.web.GetFile</servlet-class> 170 <init-param> 171 <param-name>keepgenerated</param-name> 172 <param-value>true</param-value> 173 </init-param> 174 </servlet> 175 <servlet> 176 <display-name>Error Handler</display-name> 177 <servlet-name>error</servlet-name> 178 <jsp-file>/error.jsp</jsp-file> 179 <init-param> 180 <param-name>keepgenerated</param-name> 181 <param-value>true</param-value> 182 </init-param> 183 </servlet> 184 <servlet> 185 <display-name>File not found handler</display-name> 186 <servlet-name>enoent</servlet-name> 187 <jsp-file>/enoent.jsp</jsp-file> 188 <init-param> 189 <param-name>keepgenerated</param-name> 190 <param-value>true</param-value> 191 </init-param> 192 </servlet> 193 <servlet> 194 <display-name>Forbidden error handler</display-name> 195 <servlet-name>eforbidden</servlet-name> 196 <jsp-file>/eforbidden.jsp</jsp-file> 197 <init-param> 198 <param-name>keepgenerated</param-name> 199 <param-value>true</param-value> 200 </init-param> 201 </servlet> 202 <servlet-mapping> 203 <servlet-name>search</servlet-name> 204 <url-pattern>/search</url-pattern> 205 <!-- SEARCH_P --> 206 </servlet-mapping> 207 <servlet-mapping> 208 <servlet-name>opensearch</servlet-name> 209 <url-pattern>/opensearch</url-pattern> 210 <!-- SEARCH_O --> 211 </servlet-mapping> 212 <servlet-mapping> 213 <servlet-name>history</servlet-name> 214 <url-pattern>/history/*</url-pattern> 215 <!-- HIST_L --> 216 </servlet-mapping> 217 <servlet-mapping> 218 <servlet-name>lister</servlet-name> 219 <url-pattern>/xref/*</url-pattern> 220 <!-- XREF_P --> 221 </servlet-mapping> 222 <servlet-mapping> 223 <servlet-name>raw</servlet-name> 224 <url-pattern>/raw/*</url-pattern> 225 <!-- RAW_P --> 226 </servlet-mapping> 227 <servlet-mapping> 228 <servlet-name>download</servlet-name> 229 <url-pattern>/download/*</url-pattern> 230 <!-- DOWNLOAD_P --> 231 </servlet-mapping> 232 <servlet-mapping> 233 <servlet-name>search</servlet-name> 234 <url-pattern>/s</url-pattern> 235 <!-- SEARCH_R --> 236 </servlet-mapping> 237 <servlet-mapping> 238 <servlet-name>diff</servlet-name> 239 <url-pattern>/diff/*</url-pattern> 240 <!-- DIFF_P --> 241 </servlet-mapping> 242 <servlet-mapping> 243 <servlet-name>more</servlet-name> 244 <url-pattern>/more/*</url-pattern> 245 <!-- MORE_P --> 246 </servlet-mapping> 247 <servlet-mapping> 248 <servlet-name>rss</servlet-name> 249 <url-pattern>/rss/*</url-pattern> 250 <!-- RSS_P --> 251 </servlet-mapping> 252 <servlet-mapping> 253 <servlet-name>error</servlet-name> 254 <url-pattern>/error</url-pattern> 255 <!-- ERROR --> 256 </servlet-mapping> 257 <servlet-mapping> 258 <servlet-name>enoent</servlet-name> 259 <url-pattern>/enoent</url-pattern> 260 <!-- NOT_FOUND --> 261 </servlet-mapping> 262 <servlet-mapping> 263 <servlet-name>eforbidden</servlet-name> 264 <url-pattern>/eforbidden</url-pattern> 265 <!-- FORBIDDEN --> 266 </servlet-mapping> 267 <error-page> 268 <error-code>404</error-code> 269 <location>/enoent</location> 270 </error-page> 271 <error-page> 272 <error-code>403</error-code> 273 <location>/eforbidden</location> 274 </error-page> 275 <error-page> 276 <error-code>500</error-code> 277 <location>/error</location> 278 </error-page> 279 <jsp-config> 280 <jsp-property-group> 281 <url-pattern>*.jsp</url-pattern> 282 <trim-directive-whitespaces>true</trim-directive-whitespaces> 283 </jsp-property-group> 284 </jsp-config> 285</web-app> 286