diff --git a/core/src/main/java/org/fao/geonet/api/records/attachments/FilesystemStoreResource.java b/core/src/main/java/org/fao/geonet/api/records/attachments/FilesystemStoreResource.java
index 336cbf4e865..08f665b4c4e 100644
--- a/core/src/main/java/org/fao/geonet/api/records/attachments/FilesystemStoreResource.java
+++ b/core/src/main/java/org/fao/geonet/api/records/attachments/FilesystemStoreResource.java
@@ -84,7 +84,7 @@ public FilesystemStoreResource(String metadataUuid,
@Override
public String getId() {
- return UrlEscapers.urlFragmentEscaper().escape(metadataUuid) +
+ return UrlEscapers.urlPathSegmentEscaper().escape(metadataUuid) +
"/attachments/" +
UrlEscapers.urlFragmentEscaper().escape(filename);
}
diff --git a/services/src/main/java/org/fao/geonet/api/mapservers/MapServersApi.java b/services/src/main/java/org/fao/geonet/api/mapservers/MapServersApi.java
index f09a537da72..961c327b366 100644
--- a/services/src/main/java/org/fao/geonet/api/mapservers/MapServersApi.java
+++ b/services/src/main/java/org/fao/geonet/api/mapservers/MapServersApi.java
@@ -351,7 +351,7 @@ public void deleteMapserver(
// @Authorization(value = "basicAuth")
// }
)
- @RequestMapping(value = "/{mapserverId}/records/{metadataUuid}",
+ @RequestMapping(value = "/{mapserverId}/records/{metadataUuid:.+}",
method = RequestMethod.GET,
produces = {
MediaType.TEXT_PLAIN_VALUE
@@ -405,7 +405,7 @@ public String getMapserverResource(
// @Authorization(value = "basicAuth")
// }
)
- @RequestMapping(value = "/{mapserverId}/records/{metadataUuid}",
+ @RequestMapping(value = "/{mapserverId}/records/{metadataUuid:.+}",
method = RequestMethod.PUT,
produces = {
MediaType.TEXT_PLAIN_VALUE
@@ -460,7 +460,7 @@ public String publishMapserverResource(
// })
)
@RequestMapping(
- value = "/{mapserverId}/records/{metadataUuid}",
+ value = "/{mapserverId}/records/{metadataUuid:.+}",
method = RequestMethod.DELETE,
produces = {
MediaType.TEXT_PLAIN_VALUE
diff --git a/services/src/main/java/org/fao/geonet/api/records/DoiApi.java b/services/src/main/java/org/fao/geonet/api/records/DoiApi.java
index ed767e39022..47855baef57 100644
--- a/services/src/main/java/org/fao/geonet/api/records/DoiApi.java
+++ b/services/src/main/java/org/fao/geonet/api/records/DoiApi.java
@@ -69,7 +69,7 @@ public class DoiApi {
@io.swagger.v3.oas.annotations.Operation(
summary = "Check that a record can be submitted to DataCite for DOI creation. " +
"DataCite requires some fields to be populated.")
- @RequestMapping(value = "/{metadataUuid}/doi/checkPreConditions",
+ @RequestMapping(value = "/{metadataUuid:.+}/doi/checkPreConditions",
method = RequestMethod.GET,
produces = {
MediaType.APPLICATION_JSON_VALUE
@@ -104,7 +104,7 @@ ResponseEntity
diff --git a/web/src/main/webapp/WEB-INF/config-security/config-security-core.xml b/web/src/main/webapp/WEB-INF/config-security/config-security-core.xml
index 46831cffaad..1e616c3804e 100644
--- a/web/src/main/webapp/WEB-INF/config-security/config-security-core.xml
+++ b/web/src/main/webapp/WEB-INF/config-security/config-security-core.xml
@@ -63,8 +63,32 @@
+
+