diff --git a/src/main/java/de/thm/arsnova/controller/FeedbackController.java b/src/main/java/de/thm/arsnova/controller/FeedbackController.java index 4e8b4f79d419619d612a7bd8e1d8add12d26cf68..2f3e3b16c7b509ee4336f6dda7805ef240245436 100644 --- a/src/main/java/de/thm/arsnova/controller/FeedbackController.java +++ b/src/main/java/de/thm/arsnova/controller/FeedbackController.java @@ -94,14 +94,9 @@ public class FeedbackController extends AbstractController { @RequestBody final int value ) { User user = userService.getCurrentUser(); - if (feedbackService.saveFeedback(sessionkey, value, user)) { - Feedback feedback = feedbackService.getFeedback(sessionkey); - if (feedback != null) { - return feedback; - } - throw new RuntimeException(); - } + feedbackService.saveFeedback(sessionkey, value, user); + Feedback feedback = feedbackService.getFeedback(sessionkey); - throw new NotFoundException(); + return feedback; } } diff --git a/src/main/java/de/thm/arsnova/controller/WelcomeController.java b/src/main/java/de/thm/arsnova/controller/WelcomeController.java index 9313f5ef9d652c934da711ed3ded1328463a0af2..c036abda8e3be9e8068340da46af383a9baf5969 100644 --- a/src/main/java/de/thm/arsnova/controller/WelcomeController.java +++ b/src/main/java/de/thm/arsnova/controller/WelcomeController.java @@ -86,13 +86,13 @@ public class WelcomeController extends AbstractController { ) { /* Block requests from the server itself to prevent DoS attacks caused by request loops */ if ("127.0.0.1".equals(request.getRemoteAddr())) { - throw new BadRequestException(); + throw new BadRequestException("Access to localhost not allowed."); } /* Block requests to servers in private networks */ try { final InetAddress addr = InetAddress.getByName(new URL(url).getHost()); if (addr.isSiteLocalAddress()) { - throw new BadRequestException(); + throw new BadRequestException("Access to site-local addresses not allowed."); } } catch (UnknownHostException | MalformedURLException e) { throw new BadRequestException(); diff --git a/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java b/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java index c9b728742518288d38a567ed398dab1677c6de6a..b7e80b833cb0f6053e9d0c1f77fe63813272cdd9 100644 --- a/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java +++ b/src/main/java/de/thm/arsnova/exceptions/BadRequestException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class BadRequestException extends RuntimeException { private static final long serialVersionUID = 1L; + + public BadRequestException() { + super(); + } + + public BadRequestException(String message) { + super(message); + } + + public BadRequestException(Throwable e) { + super(e); + } + + public BadRequestException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java b/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java index 05ed5bf3bb633258cdecade7a5ec1621bfe76752..05b21dab60ba76f181a0343c4420d7129814e966 100644 --- a/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java +++ b/src/main/java/de/thm/arsnova/exceptions/ForbiddenException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class ForbiddenException extends RuntimeException { private static final long serialVersionUID = 1L; + + public ForbiddenException() { + super(); + } + + public ForbiddenException(String message) { + super(message); + } + + public ForbiddenException(Throwable e) { + super(e); + } + + public ForbiddenException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/NoContentException.java b/src/main/java/de/thm/arsnova/exceptions/NoContentException.java index f0de3c46c0f629be82b65e8b425d44c410c6e1c6..f3f7e81649b77d04bf4431b45aeebd857b71eff8 100644 --- a/src/main/java/de/thm/arsnova/exceptions/NoContentException.java +++ b/src/main/java/de/thm/arsnova/exceptions/NoContentException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class NoContentException extends RuntimeException { private static final long serialVersionUID = 1L; + + public NoContentException() { + super(); + } + + public NoContentException(String message) { + super(message); + } + + public NoContentException(Throwable e) { + super(e); + } + + public NoContentException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java b/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java index 0937ebde41a488665a864a5aac53cbc295fd3af5..a0a12b25add162e74557c33502cea8dcc3697b90 100644 --- a/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java +++ b/src/main/java/de/thm/arsnova/exceptions/NotFoundException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class NotFoundException extends RuntimeException { private static final long serialVersionUID = 1L; + + public NotFoundException() { + super(); + } + + public NotFoundException(String message) { + super(message); + } + + public NotFoundException(Throwable e) { + super(e); + } + + public NotFoundException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java b/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java index ed5e30f6516458b30faa96adc3010389e6baf57e..93f7ed795537fbd2a263059c7add9bc3c3b1f3b7 100644 --- a/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java +++ b/src/main/java/de/thm/arsnova/exceptions/NotImplementedException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class NotImplementedException extends RuntimeException { private static final long serialVersionUID = 1L; + + public NotImplementedException() { + super(); + } + + public NotImplementedException(String message) { + super(message); + } + + public NotImplementedException(Throwable e) { + super(e); + } + + public NotImplementedException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java b/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java index 6562a149b6ddf8e5dc7521ae70ec54165b1be75a..9233b58f25fd465979943a782c9a9d4fced27e25 100644 --- a/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java +++ b/src/main/java/de/thm/arsnova/exceptions/PayloadTooLargeException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class PayloadTooLargeException extends RuntimeException { private static final long serialVersionUID = 1L; + + public PayloadTooLargeException() { + super(); + } + + public PayloadTooLargeException(String message) { + super(message); + } + + public PayloadTooLargeException(Throwable e) { + super(e); + } + + public PayloadTooLargeException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java b/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java index 423b3a4f88440f23c6413f02520d17a11b4f5d5b..e14d30c7edd66c8bc7dbd669144eda48a4a64d32 100644 --- a/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java +++ b/src/main/java/de/thm/arsnova/exceptions/PreconditionFailedException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class PreconditionFailedException extends RuntimeException { private static final long serialVersionUID = 1L; + + public PreconditionFailedException() { + super(); + } + + public PreconditionFailedException(String message) { + super(message); + } + + public PreconditionFailedException(Throwable e) { + super(e); + } + + public PreconditionFailedException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java b/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java index 7a4c3dc8a2ef623705b780e29c7d03c167f8fdd9..f6a91249b2681fea1bd816b0b9dadde1ab86748a 100644 --- a/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java +++ b/src/main/java/de/thm/arsnova/exceptions/UnauthorizedException.java @@ -5,4 +5,20 @@ package de.thm.arsnova.exceptions; */ public class UnauthorizedException extends RuntimeException { private static final long serialVersionUID = 1L; + + public UnauthorizedException() { + super(); + } + + public UnauthorizedException(String message) { + super(message); + } + + public UnauthorizedException(Throwable e) { + super(e); + } + + public UnauthorizedException(String message, Throwable e) { + super(message, e); + } } diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 5da25855f1136c4d30db90e2125d8cdbf0da8acf..77a22e5b3999fb7d0d945a06e1b53c07fc0097a3 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -174,7 +174,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe if (connectorClient != null && session.isCourseSession()) { final String courseid = session.getCourseId(); if (!connectorClient.getMembership(user.getUsername(), courseid).isMember()) { - throw new ForbiddenException(); + throw new ForbiddenException("User is no course member."); } } @@ -205,15 +205,15 @@ public class SessionService implements ISessionService, ApplicationEventPublishe } if (!session.isActive()) { if (user.hasRole(UserSessionService.Role.STUDENT)) { - throw new ForbiddenException(); + throw new ForbiddenException("User is not session creator."); } else if (user.hasRole(UserSessionService.Role.SPEAKER) && !session.isCreator(user)) { - throw new ForbiddenException(); + throw new ForbiddenException("User is not session creator."); } } if (connectorClient != null && session.isCourseSession()) { final String courseid = session.getCourseId(); if (!connectorClient.getMembership(user.getUsername(), courseid).isMember()) { - throw new ForbiddenException(); + throw new ForbiddenException("User is no course member."); } } return session; @@ -336,7 +336,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe final Session session = databaseDao.getSessionFromKeyword(sessionkey); final User user = userService.getCurrentUser(); if (!session.isCreator(user)) { - throw new ForbiddenException(); + throw new ForbiddenException("User is not session creator."); } session.setActive(lock); this.publisher.publishEvent(new StatusSessionEvent(this, session)); @@ -374,7 +374,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe public Session changeSessionCreator(String sessionkey, String newCreator) { final Session existingSession = databaseDao.getSessionFromKeyword(sessionkey); if (existingSession == null) { - throw new RuntimeException("Could not load session " + sessionkey + "."); + throw new NullPointerException("Could not load session " + sessionkey + "."); } return databaseDao.changeSessionCreator(existingSession, newCreator); } @@ -424,7 +424,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe final User user = userService.getCurrentUser(); final SessionInfo info = databaseDao.importSession(user, importSession); if (info == null) { - throw new RuntimeException("Could not import session."); + throw new NullPointerException("Could not import session."); } return info; } @@ -460,7 +460,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe final Session session = databaseDao.getSessionFromKeyword(sessionkey); final User user = userService.getCurrentUser(); if (!session.isCreator(user)) { - throw new UnauthorizedException(); + throw new UnauthorizedException("User is not session creator."); } session.setFeatures(features); this.publisher.publishEvent(new FeatureChangeEvent(this, session)); @@ -472,7 +472,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe final Session session = databaseDao.getSessionFromKeyword(sessionkey); final User user = userService.getCurrentUser(); if (!session.isCreator(user)) { - throw new UnauthorizedException(); + throw new UnauthorizedException("User is not session creator."); } if (!lock) { feedbackService.cleanFeedbackVotesInSession(sessionkey, 0); @@ -488,7 +488,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe final Session session = databaseDao.getSessionFromKeyword(sessionkey); final User user = userService.getCurrentUser(); if (!session.isCreator(user)) { - throw new UnauthorizedException(); + throw new UnauthorizedException("User is not session creator."); } session.setFlipFlashcards(flip); this.publisher.publishEvent(new FlipFlashcardsEvent(this, session)); @@ -500,7 +500,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe if (session.getPpLogo().startsWith("http")) { final String base64ImageString = imageUtils.encodeImageToString(session.getPpLogo()); if (base64ImageString == null) { - throw new BadRequestException(); + throw new BadRequestException("Could not encode image."); } session.setPpLogo(base64ImageString); } @@ -508,8 +508,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe // base64 adds offset to filesize, formula taken from: http://en.wikipedia.org/wiki/Base64#MIME final int fileSize = (int) ((session.getPpLogo().length() - 814) / 1.37); if (fileSize > uploadFileSizeByte) { - logger.error("Could not save file. File is too large with {} Byte.", fileSize); - throw new PayloadTooLargeException(); + throw new PayloadTooLargeException("Could not save file. File is too large with " + fileSize + " Byte."); } } }