From 7c014476199aa1156a7c6e7a755705b9fc270209 Mon Sep 17 00:00:00 2001 From: Mauro Bartolomeoli Date: Mon, 2 Aug 2021 12:48:12 +0200 Subject: [PATCH] #7172: migration to GeoStore 1.8-SNAPSHOT to inherit latest spring compatibility --- .../mapstore-migration-guide.md | 41 +++++++++++++++++++ java/pom.xml | 2 +- java/services/pom.xml | 21 ++++++---- .../configs/ConfigsController.java | 8 +++- .../rest/config/LoadAssetsController.java | 10 ++++- java/web/pom.xml | 16 ++++---- java/web/src/main/webapp/WEB-INF/web.xml | 4 +- pom.xml | 2 +- .../config/db/geostore-spring-security-db.xml | 1 + .../ldap/geostore-spring-security-ldap.xml | 1 + product/pom.xml | 4 +- .../web/src/main/webapp/WEB-INF/web.xml | 4 +- project/standard/templates/web/pom.xml | 6 ++- .../web/src/main/webapp/WEB-INF/web.xml | 4 +- release/bin-war/pom.xml | 2 +- web/client/api/GeoStoreDAO.js | 4 +- .../config/db/geostore-spring-security-db.xml | 1 + .../ldap/geostore-spring-security-ldap.xml | 1 + 18 files changed, 99 insertions(+), 33 deletions(-) diff --git a/docs/developer-guide/mapstore-migration-guide.md b/docs/developer-guide/mapstore-migration-guide.md index d9cfb4e796..36e4eb67a0 100644 --- a/docs/developer-guide/mapstore-migration-guide.md +++ b/docs/developer-guide/mapstore-migration-guide.md @@ -21,6 +21,47 @@ This is a list of things to check if you want to update from a previous version - Follow the instructions below, in order, from your version to the one you want to update to. +## Migration from 2021.02.00 to 2021.03.00 + +This release includes several libraries upgrade on the backend side, +in particular the following have been migrated to the latest available versions: + +| Library | Old |New| +| ----------- | ----------- |--| +| Spring| 3.0.5|5.3.9| +| Spring-security| 3.0.5 |5.3.10| +| CXF| 2.3.2 |3.4.4| +| Hibernate| 3.3.2 |5.5.0| +| JPA| 1.0 |2.1| +| hibernate-generic-dao| 0.5.1 |1.3.0-SNAPSHOT| +| h2| 1.3.168 |1.3.175| +| servlet-api| 2.5 |3.1| + +This requires also an upgrade of Tomcat to at least version 8.5.x + +### Updating projects configuration + +Projects need the following to update to this MapStore release: + + - upgrade Tomcat to 8.5 or greater + - update your geostore-spring-security.xml file to add the following setting, needed to disable CSRF validation, that MapStore services do not implement yet: + +```xml + + ... + + ... + +``` + + - remove the spring log4j listener from web.xml + +```xml + +``` ## Migration from 2021.01.02 to 2021.02.00 ### Theme updates and CSS variables diff --git a/java/pom.xml b/java/pom.xml index 3010b5cffc..501a3e8e53 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -4,7 +4,7 @@ it.geosolutions.mapstore mapstore-java pom - 1.2-SNAPSHOT + 1.3-SNAPSHOT MapStore 2 http://www.geo-solutions.it diff --git a/java/services/pom.xml b/java/services/pom.xml index b50b467028..9ce5111e1c 100644 --- a/java/services/pom.xml +++ b/java/services/pom.xml @@ -4,13 +4,14 @@ it.geosolutions.mapstore mapstore-services jar - 1.2-SNAPSHOT + 1.3-SNAPSHOT MapStore 2 - Backend Services http://www.geo-solutions.it UTF-8 - 3.0.5.RELEASE + 5.3.9 + 5.3.10.RELEASE @@ -38,22 +39,22 @@ org.springframework.security spring-security-core - ${spring.version} + ${spring.security.version} org.springframework.security spring-security-web - ${spring.version} + ${spring.security.version} org.springframework.security spring-security-config - ${spring.version} + ${spring.security.version} org.springframework.security spring-security-ldap - ${spring.version} + ${spring.security.version} org.springframework @@ -77,11 +78,13 @@ test + - javax.servlet - servlet-api - 2.5 + javax.servlet + javax.servlet-api + 3.0.1 + net.sf.json-lib diff --git a/java/services/src/main/java/it/geosolutions/mapstore/controllers/configs/ConfigsController.java b/java/services/src/main/java/it/geosolutions/mapstore/controllers/configs/ConfigsController.java index c28ef95559..b659f73e0a 100644 --- a/java/services/src/main/java/it/geosolutions/mapstore/controllers/configs/ConfigsController.java +++ b/java/services/src/main/java/it/geosolutions/mapstore/controllers/configs/ConfigsController.java @@ -44,6 +44,12 @@ public class ConfigsController extends BaseConfigController { */ @RequestMapping(value="/{resource}", method = RequestMethod.GET) // TODO: search in configs directory base public @ResponseBody byte[] loadResource(@PathVariable("resource") String resourceName, @RequestParam(value="overrides", defaultValue="true") boolean applyOverrides) throws IOException { - return toBytes(readResource( Paths.get(getConfigsFolder(), resourceName + ".json").toString(), applyOverrides, Paths.get(getConfigsFolder(), resourceName + ".json.patch").toString())); + return toBytes(readResource( Paths.get(getConfigsFolder(), normalizeExtension(resourceName, "json")).toString(), applyOverrides, Paths.get(getConfigsFolder(), resourceName + ".json.patch").toString())); } + + private String normalizeExtension(String name, String extension) { + if(name.toLowerCase().endsWith("." + extension.toLowerCase())) + return name; + return name + "." + extension; + } } diff --git a/java/services/src/main/java/it/geosolutions/mapstore/controllers/rest/config/LoadAssetsController.java b/java/services/src/main/java/it/geosolutions/mapstore/controllers/rest/config/LoadAssetsController.java index b3fb55c754..165011840e 100644 --- a/java/services/src/main/java/it/geosolutions/mapstore/controllers/rest/config/LoadAssetsController.java +++ b/java/services/src/main/java/it/geosolutions/mapstore/controllers/rest/config/LoadAssetsController.java @@ -53,13 +53,21 @@ public class LoadAssetsController extends BaseConfigController { */ @RequestMapping(value="/load/{resource}", method = RequestMethod.GET) public @ResponseBody byte[] loadResource(@PathVariable("resource") String resourceName, @RequestParam(value="overrides", defaultValue="true") boolean applyOverrides) throws IOException { + resourceName = normalizeResource(resourceName, "json"); if (isAllowed(resourceName)) { return toBytes(readResource(resourceName + ".json", applyOverrides, resourceName + ".json.patch")); } throw new ResourceNotAllowedException("Resource is not allowed"); } - /** + private String normalizeResource(String name, String extension) { + if(name.toLowerCase().endsWith("." + extension.toLowerCase())) { + return name.substring(0, name.length() - 1 - extension.length()); + } + return name; + } + + /** * Loads an asset from the datadir, if defined, from the webapp root folder otherwise. * Allows loading externalized assets (javascript bundles, translation files, and so on). * The rest of the URL from /loadasset/ is intended to be the path to resource. diff --git a/java/web/pom.xml b/java/web/pom.xml index a14ca387ec..3669e50664 100644 --- a/java/web/pom.xml +++ b/java/web/pom.xml @@ -4,7 +4,7 @@ it.geosolutions.mapstore mapstore-webapp war - 1.2-SNAPSHOT + 1.3-SNAPSHOT MapStore 2 - WAR http://www.geo-solutions.it @@ -19,7 +19,7 @@ it.geosolutions.mapstore mapstore-services - 1.2-SNAPSHOT + 1.3-SNAPSHOT @@ -28,7 +28,7 @@ it.geosolutions.geostore geostore-webapp - 1.7-SNAPSHOT + 1.8-SNAPSHOT war runtime @@ -56,9 +56,9 @@ - javax.servlet - servlet-api - 2.5 + javax.servlet + javax.servlet-api + 3.0.1 @@ -86,7 +86,9 @@ WEB-INF/lib/commons-io-1.1.jar, WEB-INF/lib/commons-logging-1.0.4.jar, WEB-INF/lib/commons-pool-1.3.jar, - WEB-INF/lib/spring-*-3.1.0*.jar + WEB-INF/lib/slf4j-api-1.5*.jar, + WEB-INF/lib/slf4j-log4j12-1.5*.jar, + WEB-INF/lib/spring-tx-5.2.15*.jar diff --git a/java/web/src/main/webapp/WEB-INF/web.xml b/java/web/src/main/webapp/WEB-INF/web.xml index e8846c28a1..6192210d94 100644 --- a/java/web/src/main/webapp/WEB-INF/web.xml +++ b/java/web/src/main/webapp/WEB-INF/web.xml @@ -25,10 +25,10 @@ - + + +