Skip to content

Commit 32ba572

Browse files
committed
Allow special chars in the URLs by default
1 parent 8ebecc6 commit 32ba572

File tree

4 files changed

+176
-1
lines changed

4 files changed

+176
-1
lines changed

.dockerignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.git
22
.gitignore
3-
README.md
3+
README.md
4+
logs

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
logs

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ RUN \
2323
# Java options
2424
COPY files/setenv.sh ${CATALINA_HOME}/bin/setenv.sh
2525

26+
# Custom Tomcat server.xml for allowing extra query parameters
27+
COPY files/server.xml ${CATALINA_HOME}/conf/server.xml
28+
2629
# ERDDAP setup.xml
2730
COPY files/setup.xml ${CATALINA_HOME}/content/erddap/setup.xml
2831

files/server.xml

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
Licensed to the Apache Software Foundation (ASF) under one or more
4+
contributor license agreements. See the NOTICE file distributed with
5+
this work for additional information regarding copyright ownership.
6+
The ASF licenses this file to You under the Apache License, Version 2.0
7+
(the "License"); you may not use this file except in compliance with
8+
the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
-->
18+
<!-- Note: A "Server" is not itself a "Container", so you may not
19+
define subcomponents such as "Valves" at this level.
20+
Documentation at /docs/config/server.html
21+
-->
22+
<Server port="8005" shutdown="SHUTDOWN">
23+
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
24+
<!-- Security listener. Documentation at /docs/config/listeners.html
25+
<Listener className="org.apache.catalina.security.SecurityListener" />
26+
-->
27+
<!--APR library loader. Documentation at /docs/apr.html -->
28+
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
29+
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
30+
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
31+
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
32+
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
33+
34+
<!-- Global JNDI resources
35+
Documentation at /docs/jndi-resources-howto.html
36+
-->
37+
<GlobalNamingResources>
38+
<!-- Editable user database that can also be used by
39+
UserDatabaseRealm to authenticate users
40+
-->
41+
<Resource name="UserDatabase" auth="Container"
42+
type="org.apache.catalina.UserDatabase"
43+
description="User database that can be updated and saved"
44+
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
45+
pathname="conf/tomcat-users.xml" />
46+
</GlobalNamingResources>
47+
48+
<!-- A "Service" is a collection of one or more "Connectors" that share
49+
a single "Container" Note: A "Service" is not itself a "Container",
50+
so you may not define subcomponents such as "Valves" at this level.
51+
Documentation at /docs/config/service.html
52+
-->
53+
<Service name="Catalina">
54+
55+
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
56+
<!--
57+
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
58+
maxThreads="150" minSpareThreads="4"/>
59+
-->
60+
61+
62+
<!-- A "Connector" represents an endpoint by which requests are received
63+
and responses are returned. Documentation at :
64+
Java HTTP Connector: /docs/config/http.html
65+
Java AJP Connector: /docs/config/ajp.html
66+
APR (HTTP/AJP) Connector: /docs/apr.html
67+
Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
68+
-->
69+
<Connector server="Apache" secure="true" port="8080" protocol="HTTP/1.1"
70+
connectionTimeout="20000"
71+
redirectPort="8443"
72+
relaxedPathChars='[]|'
73+
relaxedQueryChars='[]|{}^&#x5c;&#x60;&quot;&lt;&gt;'
74+
/>
75+
<!-- A "Connector" using the shared thread pool-->
76+
<!--
77+
<Connector server="Apache" secure="true" executor="tomcatThreadPool"
78+
port="8080" protocol="HTTP/1.1"
79+
connectionTimeout="20000"
80+
redirectPort="8443" />
81+
-->
82+
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
83+
This connector uses the NIO implementation. The default
84+
SSLImplementation will depend on the presence of the APR/native
85+
library and the useOpenSSL attribute of the
86+
AprLifecycleListener.
87+
Either JSSE or OpenSSL style configuration may be used regardless of
88+
the SSLImplementation selected. JSSE style configuration is used below.
89+
-->
90+
<!--
91+
<Connector server="Apache" secure="true" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
92+
maxThreads="150" SSLEnabled="true">
93+
<SSLHostConfig>
94+
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
95+
type="RSA" />
96+
</SSLHostConfig>
97+
</Connector>
98+
-->
99+
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
100+
This connector uses the APR/native implementation which always uses
101+
OpenSSL for TLS.
102+
Either JSSE or OpenSSL style configuration may be used. OpenSSL style
103+
configuration is used below.
104+
-->
105+
<!--
106+
<Connector server="Apache" secure="true" port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
107+
maxThreads="150" SSLEnabled="true" >
108+
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
109+
<SSLHostConfig>
110+
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
111+
certificateFile="conf/localhost-rsa-cert.pem"
112+
certificateChainFile="conf/localhost-rsa-chain.pem"
113+
type="RSA" />
114+
</SSLHostConfig>
115+
</Connector>
116+
-->
117+
118+
<!-- Define an AJP 1.3 Connector on port 8009 -->
119+
<Connector server="Apache" secure="true" port="8009" protocol="AJP/1.3" redirectPort="8443" />
120+
121+
122+
<!-- An Engine represents the entry point (within Catalina) that processes
123+
every request. The Engine implementation for Tomcat stand alone
124+
analyzes the HTTP headers included with the request, and passes them
125+
on to the appropriate Host (virtual host).
126+
Documentation at /docs/config/engine.html -->
127+
128+
<!-- You should set jvmRoute to support load-balancing via AJP ie :
129+
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
130+
-->
131+
<Engine name="Catalina" defaultHost="localhost">
132+
133+
<!--For clustering, please take a look at documentation at:
134+
/docs/cluster-howto.html (simple how to)
135+
/docs/config/cluster.html (reference documentation) -->
136+
<!--
137+
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
138+
-->
139+
140+
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
141+
via a brute-force attack -->
142+
<Realm className="org.apache.catalina.realm.LockOutRealm">
143+
<!-- This Realm uses the UserDatabase configured in the global JNDI
144+
resources under the key "UserDatabase". Any edits
145+
that are performed against this UserDatabase are immediately
146+
available for use by the Realm. -->
147+
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
148+
resourceName="UserDatabase"><CredentialHandler className="org.apache.catalina.realm.MessageDigestCredentialHandler" algorithm="SHA" /></Realm>
149+
</Realm>
150+
151+
<Host name="localhost" appBase="webapps"
152+
unpackWARs="true" autoDeploy="true">
153+
154+
<!-- SingleSignOn valve, share authentication between web applications
155+
Documentation at: /docs/config/valve.html -->
156+
<!--
157+
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
158+
-->
159+
160+
<!-- Access log processes all example.
161+
Documentation at: /docs/config/valve.html
162+
Note: The pattern used is equivalent to using pattern="common" -->
163+
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
164+
prefix="localhost_access_log" suffix=".txt"
165+
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
166+
167+
</Host>
168+
</Engine>
169+
</Service>
170+
</Server>

0 commit comments

Comments
 (0)