diff --git a/README.md b/README.md
index bf89142c..cd3d563f 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ WiseMapping is based on the same code product supporting [http://www.wisemapping
The following products must be installed:
- * OpenJDK 11 or higher
+ * OpenJDK 17 or higher
* Maven 3.x or higher ([http://maven.apache.org/])
* npm 6 or higher ([https://www.npmjs.com/package/npm?activeTab=versions])
diff --git a/wise-webapp/src/main/java/com/wisemapping/config/AppConfig.java b/wise-webapp/src/main/java/com/wisemapping/config/AppConfig.java
new file mode 100644
index 00000000..561000f5
--- /dev/null
+++ b/wise-webapp/src/main/java/com/wisemapping/config/AppConfig.java
@@ -0,0 +1,49 @@
+package com.wisemapping.config;
+
+import com.wisemapping.exceptions.AccessDeniedSecurityException;
+import com.wisemapping.exceptions.MapNotPublicSecurityException;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.ViewResolver;
+import org.springframework.web.servlet.config.annotation.EnableWebMvc;
+import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
+import org.springframework.web.servlet.view.JstlView;
+
+import java.util.Properties;
+
+@EnableWebMvc
+@Configuration
+public class AppConfig {
+
+ @Bean
+ HandlerExceptionResolver errorHandler() {
+ final SimpleMappingExceptionResolver result =
+ new SimpleMappingExceptionResolver();
+
+ //exception to view name mapping
+ final Properties p = new Properties();
+ p.setProperty(MapNotPublicSecurityException.class.getName(), "reactInclude");
+ p.setProperty(AccessDeniedSecurityException.class.getName(), "reactInclude");
+ result.setExceptionMappings(p);
+
+ //mapping status code with view response.
+ result.addStatusCode("reactInclude", 403);
+
+ //setting default error view
+ result.setDefaultErrorView("errorTemplate");
+ result.setDefaultStatusCode(500);
+
+ return result;
+ }
+
+ @Bean
+ public ViewResolver viewResolver(){
+ InternalResourceViewResolver resolver = new InternalResourceViewResolver();
+ resolver.setPrefix("/WEB-INF/views/");
+ resolver.setSuffix(".jsp");
+ resolver.setViewClass(JstlView.class);
+ return resolver;
+ }
+}
diff --git a/wise-webapp/src/main/java/com/wisemapping/exceptions/MapNonPublicException.java b/wise-webapp/src/main/java/com/wisemapping/exceptions/MapNotPublicSecurityException.java
similarity index 88%
rename from wise-webapp/src/main/java/com/wisemapping/exceptions/MapNonPublicException.java
rename to wise-webapp/src/main/java/com/wisemapping/exceptions/MapNotPublicSecurityException.java
index 93a6b6ec..6d30fcff 100755
--- a/wise-webapp/src/main/java/com/wisemapping/exceptions/MapNonPublicException.java
+++ b/wise-webapp/src/main/java/com/wisemapping/exceptions/MapNotPublicSecurityException.java
@@ -20,11 +20,11 @@ package com.wisemapping.exceptions;
import org.jetbrains.annotations.NotNull;
-public class MapNonPublicException
+public class MapNotPublicSecurityException
extends ClientException {
public static final String MSG_KEY = "ACCESS_HAS_BEEN_REVOKED";
- public MapNonPublicException(@NotNull String msg) {
+ public MapNotPublicSecurityException(@NotNull String msg) {
super(msg, Severity.FATAL);
}
diff --git a/wise-webapp/src/main/java/com/wisemapping/webmvc/MvcMindmapController.java b/wise-webapp/src/main/java/com/wisemapping/webmvc/MvcMindmapController.java
index 52d395b2..7d3517f3 100644
--- a/wise-webapp/src/main/java/com/wisemapping/webmvc/MvcMindmapController.java
+++ b/wise-webapp/src/main/java/com/wisemapping/webmvc/MvcMindmapController.java
@@ -21,7 +21,7 @@ package com.wisemapping.webmvc;
import com.wisemapping.exceptions.AccessDeniedSecurityException;
import com.wisemapping.exceptions.MapCouldNotFoundException;
-import com.wisemapping.exceptions.MapNonPublicException;
+import com.wisemapping.exceptions.MapNotPublicSecurityException;
import com.wisemapping.exceptions.WiseMappingException;
import com.wisemapping.model.CollaborationRole;
import com.wisemapping.model.Mindmap;
@@ -121,9 +121,9 @@ public class MvcMindmapController {
@RequestMapping(value = "maps/{id}/embed")
@PreAuthorize("permitAll()")
- public ModelAndView showEmbeddedPage(@PathVariable int id, @RequestParam(required = false) Float zoom) throws MapCouldNotFoundException, MapNonPublicException, AccessDeniedSecurityException {
+ public ModelAndView showEmbeddedPage(@PathVariable int id, @RequestParam(required = false) Float zoom) throws MapCouldNotFoundException, MapNotPublicSecurityException, AccessDeniedSecurityException {
if (!mindmapService.isMindmapPublic(id)) {
- throw new MapNonPublicException("Map " + id + " is not public.");
+ throw new MapNotPublicSecurityException("Map " + id + " is not public.");
}
final MindMapBean mindmap = findMindmapBean(id);
@@ -138,7 +138,7 @@ public class MvcMindmapController {
@PreAuthorize("permitAll()")
public String showPublicViewPage(@PathVariable int id, @NotNull Model model) throws WiseMappingException {
if (!mindmapService.isMindmapPublic(id)) {
- throw new MapNonPublicException("Map " + id + " is not public.");
+ throw new MapNotPublicSecurityException("Map " + id + " is not public.");
}
return this.showPrintPage(id, model);
}
diff --git a/wise-webapp/src/main/resources/messages_en.properties b/wise-webapp/src/main/resources/messages_en.properties
index ec30a85d..06248f2d 100644
--- a/wise-webapp/src/main/resources/messages_en.properties
+++ b/wise-webapp/src/main/resources/messages_en.properties
@@ -8,7 +8,6 @@ INVALID_EMAIL_ADDRESS=Invalid email address. Please, verify that your entered v
CREATOR=Creator
WELCOME=Welcome
SHARE=Share
-UNEXPECTED_ERROR=An unexpected error has occurred.
MAP_TITLE_ALREADY_EXISTS=You have already a map with the same name
LABEL_TITLE_ALREADY_EXISTS=You have already a label with the same name
TUTORIAL.MULTIPLE_TEXT_STYLES=Multiple Text Styles
@@ -47,9 +46,7 @@ MINDMAP_IS_LOCKED=Min map is locked for edition.
# Confirmed
RESET_PASSWORD_INVALID_EMAIL=The email provided is not a valid user account. Please, try again with a valid email.
TRY_WELCOME=This edition space showcases some of the mind map editor capabilities \!.
-UNEXPECTED_ERROR_DETAILS=Unexpected error processing request.
NO_ENOUGH_PERMISSIONS=This mind map cannot be opened.
-NO_ENOUGH_PERMISSIONS_DETAILS=You do not have enough right access to see this map. This map has been changed to private or deleted.
CAPTCHA_TIMEOUT_OUT_DUPLICATE=Please, refresh the page and try again.
CAPTCHA_INVALID_INPUT_RESPONSE=Invalid input response, refresh the page and try again.
MINDMAP_EMPTY_ERROR=Mind map can not be empty.
diff --git a/wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml b/wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml
index 26b88e6e..9f9cb2ab 100644
--- a/wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml
+++ b/wise-webapp/src/main/webapp/WEB-INF/classes/log4j2.xml
@@ -14,7 +14,7 @@
-
+
diff --git a/wise-webapp/src/main/webapp/WEB-INF/views/reactInclude.jsp b/wise-webapp/src/main/webapp/WEB-INF/views/reactInclude.jsp
index 5cfe08eb..17dd986e 100644
--- a/wise-webapp/src/main/webapp/WEB-INF/views/reactInclude.jsp
+++ b/wise-webapp/src/main/webapp/WEB-INF/views/reactInclude.jsp
@@ -11,8 +11,6 @@
<%@ include file="pageHeaders.jsf" %>
- WiseMapping
-
+