diff --git a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java index 0077da747a94e884f03d7ce4ffc9bec46f3fb329..3211dfe93a0d8b76ba04d4ae7d76a6c518559df5 100644 --- a/src/main/java/de/thm/arsnova/controller/ConfigurationController.java +++ b/src/main/java/de/thm/arsnova/controller/ConfigurationController.java @@ -204,12 +204,15 @@ public class ConfigurationController extends AbstractController { features.put("sessionImportExport", "true".equals(sessionImportExportEnabled)); features.put("publicPool", "true".equals(publicPoolEnabled)); - // add public pool configuration - config.put("publicPool", publicPool); - - publicPool.put("subjects", ppSubjects); - publicPool.put("licenses", ppLicenses); - publicPool.put("logoMaxFilesize", ppLogoMaxFilesize); + // add public pool configuration on demand + if (features.get("publicPool")) { + config.put("publicPool", publicPool); + publicPool.put("subjects", ppSubjects); + publicPool.put("licenses", ppLicenses); + publicPool.put("logoMaxFilesize", ppLogoMaxFilesize); + publicPool.put("levelsDe", ppLevelsDe); + publicPool.put("levelsEn", ppLevelsEn); + } if (!"".equals(trackingTrackerUrl)) { HashMap<String, String> tracking = new HashMap<String, String>(); @@ -219,8 +222,6 @@ public class ConfigurationController extends AbstractController { tracking.put("trackerUrl", trackingTrackerUrl); tracking.put("siteId", trackingSiteId); } - publicPool.put("levelsDe", ppLevelsDe); - publicPool.put("levelsEn", ppLevelsEn); config.put("grid", gridImageMaxFileSize); diff --git a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java index 2b4608d972fcd6d097794190064597bddaaec9a2..611f8e1325ae4011e77c5fb9f3757028e1936db1 100644 --- a/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java +++ b/src/main/java/de/thm/arsnova/controller/SecurityExceptionControllerAdvice.java @@ -37,6 +37,7 @@ import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.exceptions.NotImplementedException; import de.thm.arsnova.exceptions.PreconditionFailedException; import de.thm.arsnova.exceptions.UnauthorizedException; +import de.thm.arsnova.exceptions.RequestEntityTooLargeException; @ControllerAdvice public class SecurityExceptionControllerAdvice { @@ -98,4 +99,9 @@ public class SecurityExceptionControllerAdvice { @ExceptionHandler(NotImplementedException.class) public void handleNotImplementedException(final Exception e, final HttpServletRequest request) { } + + @ResponseStatus(HttpStatus.REQUEST_ENTITY_TOO_LARGE) + @ExceptionHandler(RequestEntityTooLargeException.class) + public void handleRequestEntityTooLargeException(final Exception e, final HttpServletRequest request) { + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/RequestEntityTooLargeException.java b/src/main/java/de/thm/arsnova/exceptions/RequestEntityTooLargeException.java new file mode 100644 index 0000000000000000000000000000000000000000..a8a7f30008255d9e392122a41504f14b88a51614 --- /dev/null +++ b/src/main/java/de/thm/arsnova/exceptions/RequestEntityTooLargeException.java @@ -0,0 +1,5 @@ +package de.thm.arsnova.exceptions; + +public class RequestEntityTooLargeException extends RuntimeException { + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 37b9f8b4cadebe3d43dd7e1110d1668c5df3826e..47954ec101d2096a01c399218659b180c63798ee 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -44,6 +44,7 @@ import de.thm.arsnova.entities.User; import de.thm.arsnova.exceptions.ForbiddenException; import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.exceptions.BadRequestException; +import de.thm.arsnova.exceptions.RequestEntityTooLargeException; import de.thm.arsnova.socket.ARSnovaSocketIOServer; @Service @@ -218,7 +219,7 @@ public class SessionService implements ISessionService { final int fileSize = (int) ((session.getPpLogo().length()-814)/1.37); if (fileSize > uploadFileSizeByte) { LOGGER.error("Could not save file. File is too large with " + fileSize + " Byte."); - throw new BadRequestException(); + throw new RequestEntityTooLargeException(); } }