|
2 | 2 | geoserver-plugin-download.sh ${CATALINA_BASE}/webapps/${APP_LOCATION}/WEB-INF/lib $PLUGIN_DYNAMIC_URLS
|
3 | 3 | set -m
|
4 | 4 | export CATALINA_OPTS="$CATALINA_OPTS $EXTRA_GEOSERVER_OPTS"
|
| 5 | + |
| 6 | +# Enable CORS (inspired by https://github.com/oscarfonts/docker-geoserver) |
| 7 | +# if enabled, this will add the filter definitions |
| 8 | +# to the end of the web.xml |
| 9 | +# (this will only happen if our filter has not yet been added before) |
| 10 | +if [ "${CORS_ENABLED}" = "true" ]; then |
| 11 | + if ! grep -q DockerGeoServerCorsFilter "$CATALINA_HOME/webapps/geoserver/WEB-INF/web.xml"; then |
| 12 | + echo "Enable CORS for $CATALINA_HOME/webapps/geoserver/WEB-INF/web.xml" |
| 13 | + |
| 14 | + # Add support for access-control-allow-credentials when the origin is not a wildcard when specified via env var |
| 15 | + if [ "${CORS_ALLOWED_ORIGINS}" != "*" ] && [ "${CORS_ALLOW_CREDENTIALS}" = "true" ]; then |
| 16 | + CORS_ALLOW_CREDENTIALS="true" |
| 17 | + else |
| 18 | + CORS_ALLOW_CREDENTIALS="false" |
| 19 | + fi |
| 20 | + |
| 21 | + sed -i "\:</web-app>:i\\ |
| 22 | + <filter>\n\ |
| 23 | + <filter-name>DockerGeoServerCorsFilter</filter-name>\n\ |
| 24 | + <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>\n\ |
| 25 | + <init-param>\n\ |
| 26 | + <param-name>cors.allowed.origins</param-name>\n\ |
| 27 | + <param-value>${CORS_ALLOWED_ORIGINS}</param-value>\n\ |
| 28 | + </init-param>\n\ |
| 29 | + <init-param>\n\ |
| 30 | + <param-name>cors.allowed.methods</param-name>\n\ |
| 31 | + <param-value>${CORS_ALLOWED_METHODS}</param-value>\n\ |
| 32 | + </init-param>\n\ |
| 33 | + <init-param>\n\ |
| 34 | + <param-name>cors.allowed.headers</param-name>\n\ |
| 35 | + <param-value>${CORS_ALLOWED_HEADERS}</param-value>\n\ |
| 36 | + </init-param>\n\ |
| 37 | + <init-param>\n\ |
| 38 | + <param-name>cors.support.credentials</param-name>\n\ |
| 39 | + <param-value>${CORS_ALLOW_CREDENTIALS}</param-value>\n\ |
| 40 | + </init-param>\n\ |
| 41 | + </filter>\n\ |
| 42 | + <filter-mapping>\n\ |
| 43 | + <filter-name>DockerGeoServerCorsFilter</filter-name>\n\ |
| 44 | + <url-pattern>/*</url-pattern>\n\ |
| 45 | + </filter-mapping>" "$CATALINA_HOME/webapps/geoserver/WEB-INF/web.xml"; |
| 46 | + fi |
| 47 | +fi |
| 48 | + |
5 | 49 | catalina.sh run &
|
6 | 50 | /usr/local/bin/geoserver-rest-config.sh
|
7 | 51 | fg %1
|
0 commit comments