@Test public void should_create_exception_with_status_and_message() { ServerException exception = new ServerException(404, "Not found"); assertThat(exception.httpCode()).isEqualTo(404); assertThat(exception.getMessage()).isEqualTo("Not found"); } }
@Test public void should_create_exception_with_status() { ServerException exception = new ServerException(400, "error!"); assertThat(exception.httpCode()).isEqualTo(400); }
@Test public void throw_server_exception() throws Exception { Request request = mock(Request.class); when(request.getPath()).thenReturn("/api/resources/index"); try { RemovedWebServiceHandler.INSTANCE.handle(request, null); fail(); } catch (ServerException e) { assertThat(e.getMessage()).isEqualTo("The web service '/api/resources/index' doesn't exist anymore, please read its documentation to use alternatives"); assertThat(e.httpCode()).isEqualTo(410); } } }
@Override public void handle(Request request, Response response) { throw new ServerException(HTTP_GONE, String.format("The web service '%s' doesn't exist anymore, please read its documentation to use alternatives", request.getPath())); }
@Test public void fail_when_ws_is_called() { try { ws.newRequest().execute(); fail(); } catch (ServerException e) { assertThat(e.httpCode()).isEqualTo(HTTP_GONE); } } }
public void execute(Request request, Response response) { try { ActionExtractor actionExtractor = new ActionExtractor(request.getPath()); WebService.Action action = getAction(actionExtractor); checkFound(action, "Unknown url : %s", request.getPath()); if (request instanceof ValidatingRequest) { ((ValidatingRequest) request).setAction(action); ((ValidatingRequest) request).setLocalConnector(this); } checkActionExtension(actionExtractor.getExtension()); verifyRequest(action, request); action.handler().handle(request, response); } catch (IllegalArgumentException e) { sendErrors(request, response, e, 400, singletonList(e.getMessage())); } catch (BadRequestException e) { sendErrors(request, response, e, 400, e.errors()); } catch (ServerException e) { sendErrors(request, response, e, e.httpCode(), singletonList(e.getMessage())); } catch (Exception e) { sendErrors(request, response, e, 500, singletonList("An error has occurred. Please contact your administrator")); } }
public static void verifyRequest(WebService.Action action, Request request) { switch (request.method()) { case "GET": if (action.isPost()) { throw new ServerException(SC_METHOD_NOT_ALLOWED, "HTTP method POST is required"); } return; case "PUT": case "DELETE": throw new ServerException(SC_METHOD_NOT_ALLOWED, String.format("HTTP method %s is not allowed", request.method())); default: // Nothing to do } } }
public void execute(Request request, Response response) { try { ActionExtractor actionExtractor = new ActionExtractor(request.getPath()); WebService.Action action = getAction(actionExtractor); checkFound(action, "Unknown url : %s", request.getPath()); if (request instanceof ValidatingRequest) { ((ValidatingRequest) request).setAction(action); ((ValidatingRequest) request).setLocalConnector(this); } checkActionExtension(actionExtractor.getExtension()); verifyRequest(action, request); action.handler().handle(request, response); } catch (IllegalArgumentException e) { sendErrors(request, response, e, 400, singletonList(e.getMessage())); } catch (BadRequestException e) { sendErrors(request, response, e, 400, e.errors()); } catch (ServerException e) { sendErrors(request, response, e, e.httpCode(), singletonList(e.getMessage())); } catch (Exception e) { sendErrors(request, response, e, 500, singletonList("An error has occurred. Please contact your administrator")); } }
private String hashToken(DbSession dbSession, String token) { String tokenHash = tokenGenerator.hash(token); UserTokenDto userToken = dbClient.userTokenDao().selectByTokenHash(dbSession, tokenHash); if (userToken == null) { return tokenHash; } throw new ServerException(HTTP_INTERNAL_ERROR, "Error while generating token. Please try again."); }
@Override public void handle(Request request, Response response) { throw new ServerException(HTTP_GONE, String.format("The web service '%s' doesn't exist anymore, please read its documentation to use alternatives", request.getPath())); }
public static void verifyRequest(WebService.Action action, Request request) { switch (request.method()) { case "GET": if (action.isPost()) { throw new ServerException(SC_METHOD_NOT_ALLOWED, "HTTP method POST is required"); } return; case "PUT": case "DELETE": throw new ServerException(SC_METHOD_NOT_ALLOWED, String.format("HTTP method %s is not allowed", request.method())); default: // Nothing to do } } }
private String hashToken(DbSession dbSession, String token) { String tokenHash = tokenGenerator.hash(token); UserTokenDto userToken = dbClient.userTokenDao().selectByTokenHash(dbSession, tokenHash); if (userToken == null) { return tokenHash; } throw new ServerException(HTTP_INTERNAL_ERROR, "Error while generating token. Please try again."); }