@Override public ResponseStreams finalizeHeadersWithoutFlashAndSessionCookie(Result result) { return finalizeHeaders(result, false); }
@Override public <T> T getAttribute(String name, Class<T> clazz) { return clazz.cast(getAttribute(name)); }
@Override public String getAcceptLanguage() { return getHeader("accept-language"); }
public void init(ServletContext servletContext, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { this.servletContext = servletContext; this.httpServletRequest = httpServletRequest; this.httpServletResponse = httpServletResponse; enforceCorrectEncodingOfRequest(); String contextPath = httpServletRequest.getContextPath(); String requestPath = performGetRequestPath(); super.init(contextPath, requestPath); }
@Override public String getRemoteAddr() { boolean isUsageOfXForwardedHeaderEnabled = ninjaProperties.getBooleanWithDefault( Context.NINJA_PROPERTIES_X_FORWARDED_FOR, false); if (isUsageOfXForwardedHeaderEnabled) { String forwardHeader = getHeader(X_FORWARD_HEADER); if (forwardHeader != null) { if (forwardHeader.contains(",")) { // sometimes the header is of form client ip,proxy 1 ip,proxy 2 ip,...,proxy n ip, // we just want the client forwardHeader = StringUtils.split(forwardHeader, ',')[0].trim(); } try { // If ip4/6 address string handed over, simply does pattern validation. InetAddress.getByName(forwardHeader); return forwardHeader; } catch (UnknownHostException e) { // give up } } } // fallback to the real remote address return getRealRemoteAddr(); }
@Override public String getParameter(String key, String defaultValue) { String parameter = getParameter(key); if (parameter == null) { parameter = defaultValue; } return parameter; }
@Override public void unsetCookie(Cookie cookie) { addCookie(Cookie.builder(cookie).setMaxAge(0).build()); }
@Override public Integer getParameterAsInteger(String key) { return getParameterAsInteger(key, null); }
@Override public <T> T getParameterAs(String key, Class<T> clazz) { return getParameterAs(key, clazz, null); }
@Override public String getCookieValue(String name) { Cookie cookie = getCookie(name); if (cookie == null) { return null; } return cookie.getValue(); }
public void init(HttpServerExchange exchange, String contextPath) { this.exchange = exchange; //enforceCorrectEncodingOfRequest(); // requestPath = performGetRequestPath(); // any form data should have been eagerly parsed this.formData = exchange.getAttachment(FormDataParser.FORM_DATA); super.init(contextPath, exchange.getRequestPath()); }
@Override public Integer getParameterAsInteger(String key, Integer defaultValue) { String parameter = getParameter(key); try { return Integer.parseInt(parameter); } catch (NumberFormatException e) { return defaultValue; } }
protected ResponseStreams finalizeHeaders(Result result, Boolean handleFlashAndSessionCookie) { // copy ninja flash and session data directory to this context if (handleFlashAndSessionCookie) { flashScope.save(this); session.save(this); } // copy any cookies from result for (ninja.Cookie cookie : result.getCookies()) { addCookie(cookie); } // subclasses responsible for creating the ResponseStreams instance return null; }
@Override public ResponseStreams finalizeHeaders(Result result) { return finalizeHeaders(result, true); }
@Override public String getAcceptEncoding() { return getHeader("accept-encoding"); }
@Override public <T> T getParameterAs(String key, Class<T> clazz, T defaultValue) { String parameter = getParameter(key); T value = (T) paramParsers.getParamParser(clazz).parseParameter(key, parameter, validation); return validation.hasViolation(key) ? defaultValue : value; }
@Override protected ResponseStreams finalizeHeaders(Result result, Boolean handleFlashAndSessionCookie) { // delegate cookie, session, and flash to parent super.finalizeHeaders(result, handleFlashAndSessionCookie); httpServletResponse.setStatus(result.getStatusCode()); // copy headers for (Entry<String, String> header : result.getHeaders().entrySet()) { httpServletResponse.addHeader(header.getKey(), header.getValue()); } // set content type if (result.getContentType() != null) { httpServletResponse.setContentType(result.getContentType()); } // Set charset => use utf-8 if not set // Sets correct encoding for Content-Type. But also for the output // writers. if (result.getCharset() != null) { httpServletResponse.setCharacterEncoding(result.getCharset()); } else { httpServletResponse.setCharacterEncoding(NinjaConstant.UTF_8); } // possibly ResponseStreamsServlet responseStreamsServlet = new ResponseStreamsServlet(); responseStreamsServlet.init(httpServletResponse); return responseStreamsServlet; }
@Override public String getAcceptCharset() { return getHeader("accept-charset"); }
@Override protected ResponseStreams finalizeHeaders(Result result, Boolean handleFlashAndSessionCookie) { super.finalizeHeaders(result, handleFlashAndSessionCookie);
@Override public String getAcceptContentType() { String contentType = getHeader("accept"); if (contentType == null) { return Result.TEXT_HTML; } if (contentType.contains("application/xhtml") || contentType.contains("text/html") || contentType.startsWith("*/*")) { return Result.TEXT_HTML; } if (contentType.contains("application/xml") || contentType.contains("text/xml")) { return Result.APPLICATION_XML; } if (contentType.contains("application/json") || contentType.contains("text/javascript")) { return Result.APPLICATION_JSON; } if (contentType.contains("text/plain")) { return Result.TEXT_PLAIN; } if (contentType.contains("application/octet-stream")) { return Result.APPLICATION_OCTET_STREAM; } if (contentType.endsWith("*/*")) { return Result.TEXT_HTML; } return Result.TEXT_HTML; }