public void complete() { request.complete(); }
@SuppressWarnings("unused") public X509Certificate[] getCertificates() { return (X509Certificate[])request.getAttribute("javax.servlet.request.X509Certificate"); }
public Map<String, Object> getServletAttributes() { return request.getAttributes(); }
public String getRequestPath() { // Since this can be called from a filter, we need to be smart about determining the target request path. String contextPath = request.getContextPath(); String requestPath = request.getRequestURI(); if (requestPath.startsWith(contextPath)) requestPath = requestPath.substring(contextPath.length()); return requestPath; }
@Override public HttpSession getSession(boolean create) { HttpServletRequest request = getHttpServletRequest(); if (request != null) return session = request.getSession(create); return session; }
@Override public Map<String, List<String>> getHeaders() { return request.getHeaders(); }
@Override public String getHeader(String name) { return request.getHeader(name); }
/** * Equivalent to {@link HttpServletRequest#getLocalAddr()} * * @return the local address */ public String getLocalAddress() { return request.getLocalAddr(); }
public ServletUpgradeRequest(HttpServletRequest httpRequest) throws URISyntaxException { this.queryString = httpRequest.getQueryString(); this.secure = httpRequest.isSecure(); StringBuffer uri = httpRequest.getRequestURL(); if (this.queryString!=null) uri.append("?").append(this.queryString); uri.replace(0,uri.indexOf(":"),secure ? "wss" : "ws"); this.requestURI = new URI(uri.toString()); this.request = new UpgradeHttpServletRequest(httpRequest); }
@Override public List<HttpCookie> getCookies() { if(cookies == null) { Cookie[] requestCookies = request.getCookies(); if (requestCookies != null) { cookies = new ArrayList<>(); for (Cookie requestCookie : requestCookies) { HttpCookie cookie = new HttpCookie(requestCookie.getName(), requestCookie.getValue()); // No point handling domain/path/expires/secure/httponly on client request cookies cookies.add(cookie); } } } return cookies; }
@Override public void removeAttribute(String name) { HttpServletRequest request = getHttpServletRequest(); if (request != null) request.removeAttribute(name); attributes.remove(name); }
@Override public List<String> getHeaders(String name) { return request.getHeaders().get(name); }
@Override public String getProtocolVersion() { String version = request.getHeader(WebSocketConstants.SEC_WEBSOCKET_VERSION); if(version == null) { return Integer.toString(WebSocketConstants.SPEC_VERSION); } return version; }
@Override public boolean isUserInRole(String role) { HttpServletRequest request = getHttpServletRequest(); if (request != null) return request.isUserInRole(role); throw new UnsupportedOperationException(UNSUPPORTED_WITH_WEBSOCKET_UPGRADE); }
@Override public List<ExtensionConfig> getExtensions() { Enumeration<String> e = request.getHeaders("Sec-WebSocket-Extensions"); return ExtensionConfig.parseEnum(e); }
@Override public int getHeaderInt(String name) { String val = request.getHeader(name); if (val == null) { return -1; } return Integer.parseInt(val); }
public Object getServletAttribute(String name) { return request.getAttribute(name); }
@Override public void setAttribute(String name, Object value) { HttpServletRequest request = getHttpServletRequest(); if (request != null) request.setAttribute(name, value); attributes.put(name, value); }
@Override public List<String> getSubProtocols() { Enumeration<String> requestProtocols = request.getHeaders("Sec-WebSocket-Protocol"); if (requestProtocols != null && requestProtocols.hasMoreElements()) { ArrayList subprotocols = new ArrayList<>(2); while (requestProtocols.hasMoreElements()) { String candidate = requestProtocols.nextElement(); Collections.addAll(subprotocols,parseProtocols(candidate)); } return subprotocols; } else { return Collections.emptyList(); } }