@Override public void filter(Response response, Request request) { if(response instanceof HttpResponse) { DiscFilterResponse discFilterResponse = new JdiscFilterResponse((HttpResponse)response); RequestView requestView = new RequestViewImpl(request); filter(requestView, discFilterResponse); } }
@Override public void filter(HttpRequest request, ResponseHandler responseHandler) { DiscFilterRequest discFilterRequest = new JdiscFilterRequest(request); filter(discFilterRequest, responseHandler); }
/** * Returns the content-type for the request */ public String getContentType() { return getHeader(HttpHeaders.Names.CONTENT_TYPE); }
/** * Set character encoding */ public void setCharacterEncoding(String encoding) { String charEncoding = setCharsetFromContentType(this.getContentType(), encoding); if (charEncoding != null && !charEncoding.isEmpty()) { removeHeaders(HttpHeaders.Names.CONTENT_TYPE); setHeaders(HttpHeaders.Names.CONTENT_TYPE, charEncoding); } }
@Override public void invokeResponseFilterChain( ResponseFilter responseFilterChain, URI uri, HttpServletRequest request, HttpServletResponse response) { SecurityResponseFilterChain securityChain = cast(SecurityResponseFilterChain.class, responseFilterChain). orElseThrow(SecurityFilterInvoker::newUnsupportedOperationException); ServletFilterResponse wrappedResponse = new ServletFilterResponse(new ServletResponse(response)); securityChain.filter(new ServletRequestView(uri, request), wrappedResponse); }
public void filter(DiscFilterRequest request, ResponseHandler responseHandler) { ResponseHandlerGuard guard = new ResponseHandlerGuard(responseHandler); for (int i = 0, len = filters.size(); i < len && !guard.isDone(); ++i) { filters.get(i).filter(request, guard); } }
/** * Returns the servlet request to be used in any servlets invoked after this. */ @Override public HttpServletRequest invokeRequestFilterChain(RequestFilter requestFilterChain, URI uri, HttpServletRequest httpRequest, ResponseHandler responseHandler) { SecurityRequestFilterChain securityChain = cast(SecurityRequestFilterChain.class, requestFilterChain). orElseThrow(SecurityFilterInvoker::newUnsupportedOperationException); ServletRequest wrappedRequest = new ServletRequest(httpRequest, uri); securityChain.filter(new ServletFilterRequest(wrappedRequest), responseHandler); return wrappedRequest; }
public void addCookie(JDiscCookieWrapper cookie) { if(cookie != null) { List<Cookie> cookies = new ArrayList<>(); //Get current set of cookies first List<Cookie> c = getCookies(); if((c != null) && (! c.isEmpty())) { cookies.addAll(c); } cookies.add(cookie.getCookie()); setCookies(cookies); } }
/** * Get character encoding */ public String getCharacterEncoding() { return getCharsetFromContentType(this.getContentType()); }
public long getDateHeader(String name) { String value = getHeader(name); if (value == null) return -1L; Date date = null; for (int i = 0; (date == null) && (i < formats.length); i++) { try { date = formats[i].parse(value); } catch (ParseException e) { } } if (date == null) { return -1L; } return date.getTime(); }
/** * Returns the query string that is contained in the request URL. * Returns the undecoded value uri.getRawQuery() */ public String getQueryString() { return getUri().getRawQuery(); }
public JDiscCookieWrapper[] getWrappedCookies() { List<Cookie> cookies = getCookies(); if (cookies == null) { return null; } List<JDiscCookieWrapper> cookieWrapper = new ArrayList<>(cookies.size()); for(Cookie cookie : cookies) { cookieWrapper.add(JDiscCookieWrapper.wrap(cookie)); } return cookieWrapper.toArray(new JDiscCookieWrapper[cookieWrapper.size()]); }
/** * This method does not actually send the response as it * does not have access to responseHandler but * just sets the status. The methodName is misleading * for historical reasons. */ public void sendError(int errorCode) throws IOException { setStatus(errorCode); }
@Override public void filter(Response response, Request request) { for (ResponseFilter filter : filters) { filter.filter(response, request); } }
public void filter(RequestView requestView, DiscFilterResponse response) { for (SecurityResponseFilter filter : filters) { filter.filter(response, requestView); } }
public static JDiscCookieWrapper wrap(Cookie cookie) { return new JDiscCookieWrapper(cookie); }
public static RequestFilter newInstance(List<? extends SecurityRequestFilter> filters) { return new SecurityRequestFilterChain(filters); }
public static ResponseFilter newInstance(List<? extends SecurityResponseFilter> filters) { return new SecurityResponseFilterChain(filters); }
public boolean isSecure() { if(getScheme().equalsIgnoreCase(HTTPS_PREFIX)) { return true; } return false; }
public int getIntHeader(String name) { String value = getHeader(name); if (value == null) { return -1; } else { return Integer.parseInt(value); } }