Skip to content

Commit f04af9d

Browse files
authored
Merge pull request #1925 from lat-lon/fix/exceptionIfValidateOtherWorkspace-1875
Improved exception if other than the currently active workspace is validated
2 parents dd9856f + 98f5a16 commit f04af9d

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

deegree-services/deegree-services-config/src/main/java/org/deegree/services/config/actions/Validate.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static org.apache.commons.io.IOUtils.write;
44
import static org.deegree.services.config.actions.Utils.getWorkspaceAndPath;
5+
import static org.deegree.services.controller.OGCFrontController.getServiceWorkspace;
56
import static org.slf4j.LoggerFactory.getLogger;
67

78
import java.io.File;
@@ -16,7 +17,6 @@
1617
import java.util.TreeMap;
1718

1819
import jakarta.servlet.http.HttpServletResponse;
19-
2020
import org.deegree.commons.config.DeegreeWorkspace;
2121
import org.deegree.commons.config.ResourceInitException;
2222
import org.deegree.commons.utils.Pair;
@@ -44,6 +44,13 @@ public class Validate {
4444
*/
4545
public static void validate(String path, HttpServletResponse resp) throws IOException {
4646
Pair<DeegreeWorkspace, String> p = getWorkspaceAndPath(path);
47+
DeegreeWorkspace currentWorkspace = getServiceWorkspace();
48+
if (!currentWorkspace.getName().equals(p.getFirst().getName())) {
49+
setStatusCodeAndContentType(400, resp);
50+
write("Validating the requested workspace is not allowed: " + p.getFirst().getName()
51+
+ " is not the currently active workspace.", resp.getOutputStream());
52+
return;
53+
}
4754

4855
try {
4956
DeegreeWorkspace workspace = p.getFirst();

deegree-services/deegree-services-config/src/main/java/org/deegree/services/config/servlet/ConfigServlet.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
import static org.deegree.services.config.actions.ListFonts.listFonts;
4545
import static org.deegree.services.config.actions.ListWorkspaces.listWorkspaces;
4646
import static org.deegree.services.config.actions.Restart.restart;
47-
import static org.deegree.services.config.actions.UpdateBboxCache.updateBboxCache;
4847
import static org.deegree.services.config.actions.Update.update;
48+
import static org.deegree.services.config.actions.UpdateBboxCache.updateBboxCache;
4949
import static org.deegree.services.config.actions.Upload.upload;
5050
import static org.deegree.services.config.actions.Validate.validate;
5151
import static org.slf4j.LoggerFactory.getLogger;
@@ -56,7 +56,6 @@
5656
import jakarta.servlet.http.HttpServlet;
5757
import jakarta.servlet.http.HttpServletRequest;
5858
import jakarta.servlet.http.HttpServletResponse;
59-
6059
import org.apache.commons.io.IOUtils;
6160
import org.deegree.services.config.ApiKey;
6261
import org.slf4j.Logger;
@@ -111,7 +110,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Se
111110
data.append(
112111
"GET /config/validate[/path] - validate currently running workspace or file in workspace\n");
113112
data.append(
114-
"GET /config/validate/wsname[/path] - validate workspace with name <wsname> or file in workspace\n");
113+
"GET /config/validate/wsname[/path] - validate workspace with name <wsname> or file in workspace. Only the active workspace can be validated.\n");
115114
data.append(
116115
"GET /config/update/bboxcache[?featureStoreId=] - recalculates the bounding boxes of all feature stores of the currently running workspace, with the parameter 'featureStoreId' a comma separated list of feature stores to update can be passed\n");
117116
data.append(

0 commit comments

Comments
 (0)