/** * Global setter of the proxy behaviour. When it is volatile=true, * the response of the messages will be volatile (can be changed), otherwise not. * Note1: Requests are always volatile. * Note2: This global setting can be overwritten per message base, using the request interceptors. * * @param responseVolatility must be either true (volatile) or false (not volatile). */ public static void setResponseVolatile(boolean responseVolatility) { ProxyServer.setResponseVolatile(responseVolatility); }
@Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { logger.info(urlAccessLogMessageAssembler.assembleMessage(req, "Response Message Volatility: OFF")); ProxyServer.setResponseVolatile(false); }
@Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { logger.info(urlAccessLogMessageAssembler.assembleMessage(req, "Response Message Volatility: ON")); ProxyServer.setResponseVolatile(true); }
@Test public final void testDoGetShouldTurnResponseVolatilityOff() throws ServletException, IOException { // GIVEN in setup ProxyServer.setResponseVolatile(true); // WHEN underTest.doGet(request, response); // THEN Assert.assertTrue(!ProxyServer.getResponseVolatile()); }
@Test public void doPostShouldCallDoGet() throws ServletException, IOException { //GIVEN request and response given(resp.getWriter()).willReturn(printWriter); ProxyServer.setResponseVolatile(true); //WHEN underTest.doPost(req, resp); //THEN verify(resp).setContentType("application/json"); verify(printWriter).write("{\"responseVolatility\":true}"); }
@Test public final void testDoGetShouldTurnResponseVolatilityOn() throws ServletException, IOException { // GIVEN in setup ProxyServer.setResponseVolatile(false); // WHEN underTest.doGet(request, response); // THEN Assert.assertTrue(ProxyServer.getResponseVolatile()); }
@Test public void doGetShouldWriteJsonMessage() throws ServletException, IOException { //GIVEN request and response given(resp.getWriter()).willReturn(printWriter); ProxyServer.setResponseVolatile(true); //WHEN underTest.doGet(req, resp); //THEN verify(resp).setContentType("application/json"); verify(printWriter).write("{\"responseVolatility\":true}"); }
@Override public void start() { try { getProperties(); server.setPort(proxyPort); server.start(requestTimeout); ProxyServer.setResponseVolatile(responseVolatile); ProxyServer.setShouldKeepSslConnectionAlive(shouldKeepSslConnectionAlive); server.setCaptureContent(true); server.setCaptureBinaryContent(true); server.addRequestInterceptor(requestInterceptor); server.addResponseInterceptor(responseInterceptor); } catch (Exception e) { throw new ProxyCannotBeStartedException("Starting the proxy server failed.", e); } }