/** * @return true if the HttpChannel can efficiently use direct buffer (typically this means it is not over SSL or a multiplexed protocol) */ public boolean useDirectBuffers() { return getEndPoint() instanceof ChannelEndPoint; }
/** * @return true if the HttpChannel can efficiently use direct buffer (typically this means it is not over SSL or a multiplexed protocol) */ public boolean useDirectBuffers() { return getEndPoint() instanceof ChannelEndPoint; }
/** * @return true if the HttpChannel can efficiently use direct buffer (typically this means it is not over SSL or a multiplexed protocol) */ public boolean useDirectBuffers() { return getEndPoint() instanceof ChannelEndPoint; }
private Socket socket() { HttpChannel httpChannel = response.getHttpOutput().getHttpChannel(); ChannelEndPoint ep = (ChannelEndPoint) httpChannel.getEndPoint(); return ((SocketChannel) ep.getChannel()).socket(); }
public static Socket getTlsSocket(Response response) { HttpChannel httpChannel = response.getHttpOutput().getHttpChannel(); SslConnection.DecryptedEndPoint sslEndpoint = (SslConnection.DecryptedEndPoint) httpChannel.getEndPoint(); Object endpoint = sslEndpoint.getSslConnection().getEndPoint(); try { return (Socket) endpoint.getClass().getMethod("getSocket").invoke(endpoint); } catch (Exception e) { return throwUnchecked(e, Socket.class); } }
@Override protected void produceContent() throws IOException { ((HttpConnection)getHttpChannelState().getHttpChannel().getEndPoint().getConnection()).fillAndParseForContent(); }
@Override protected void closeConnection(HttpServletRequest request, HttpServletResponse response, Thread thread) { Request base_request=(request instanceof Request)?(Request)request:HttpChannel.getCurrentHttpChannel().getRequest(); base_request.getHttpChannel().getEndPoint().close(); } }
@Override protected void produceContent() throws IOException { ((HttpConnection)getHttpChannelState().getHttpChannel().getEndPoint().getConnection()).fillAndParseForContent(); } }
@Override protected void closeConnection(HttpServletRequest request, HttpServletResponse response, Thread thread) { Request base_request=(request instanceof Request)?(Request)request:HttpChannel.getCurrentHttpChannel().getRequest(); base_request.getHttpChannel().getEndPoint().close(); } }
@Override public void customize(Connector connector, HttpConfiguration channelConfig, Request request) { if (request.getHttpChannel().getEndPoint() instanceof DecryptedEndPoint) { request.setScheme(HttpScheme.HTTPS.asString()); request.setSecure(true); SslConnection.DecryptedEndPoint ssl_endp = (DecryptedEndPoint)request.getHttpChannel().getEndPoint(); SslConnection sslConnection = ssl_endp.getSslConnection(); SSLEngine sslEngine=sslConnection.getSSLEngine(); customize(sslEngine,request); } }
@Override public void customize(Connector connector, HttpConfiguration channelConfig, Request request) { if (request.getHttpChannel().getEndPoint() instanceof DecryptedEndPoint) { request.setScheme(HttpScheme.HTTPS.asString()); request.setSecure(true); SslConnection.DecryptedEndPoint ssl_endp = (DecryptedEndPoint)request.getHttpChannel().getEndPoint(); SslConnection sslConnection = ssl_endp.getSslConnection(); SSLEngine sslEngine=sslConnection.getSSLEngine(); customize(sslEngine,request); } }
@Override public void customize(Connector connector, HttpConfiguration channelConfig, Request request) { if (request.getHttpChannel().getEndPoint() instanceof DecryptedEndPoint) { request.setScheme(HttpScheme.HTTPS.asString()); request.setSecure(true); SslConnection.DecryptedEndPoint ssl_endp = (DecryptedEndPoint)request.getHttpChannel().getEndPoint(); SslConnection sslConnection = ssl_endp.getSslConnection(); SSLEngine sslEngine=sslConnection.getSSLEngine(); customize(sslEngine,request); } }
private void writeGarbageThenCloseSocket() { response.getHttpOutput().getHttpChannel().getEndPoint().write(new Callback() { @Override public void succeeded() { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } @Override public void failed(Throwable x) { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } }, BufferUtil.toBuffer(GARBAGE)); }
@Override protected void blockForContent() throws IOException { ((HttpConnection)getHttpChannelState().getHttpChannel().getEndPoint().getConnection()).blockingReadFillInterested(); try { super.blockForContent(); } catch(Throwable e) { ((HttpConnection)getHttpChannelState().getHttpChannel().getEndPoint().getConnection()).blockingReadException(e); } } }
/** * Checks the incoming request against the whitelist and blacklist * * @see org.eclipse.jetty.server.handler.HandlerWrapper#handle(java.lang.String, org.eclipse.jetty.server.Request, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Get the real remote IP (not the one set by the forwarded headers (which may be forged)) HttpChannel channel = baseRequest.getHttpChannel(); if (channel!=null) { EndPoint endp=channel.getEndPoint(); if (endp!=null) { InetSocketAddress address = endp.getRemoteAddress(); if (address!=null && !isAddrUriAllowed(address.getHostString(),baseRequest.getPathInfo())) { response.sendError(HttpStatus.FORBIDDEN_403); baseRequest.setHandled(true); return; } } } getHandler().handle(target,baseRequest, request, response); }
/** * Checks the incoming request against the whitelist and blacklist * * @see org.eclipse.jetty.server.handler.HandlerWrapper#handle(java.lang.String, org.eclipse.jetty.server.Request, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ @Override public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // Get the real remote IP (not the one set by the forwarded headers (which may be forged)) HttpChannel channel = baseRequest.getHttpChannel(); if (channel!=null) { EndPoint endp=channel.getEndPoint(); if (endp!=null) { InetSocketAddress address = endp.getRemoteAddress(); if (address!=null && !isAddrUriAllowed(address.getHostString(),baseRequest.getPathInfo())) { response.sendError(HttpStatus.FORBIDDEN_403); baseRequest.setHandled(true); return; } } } getHandler().handle(target,baseRequest, request, response); }
@Override public void customize(Connector connector, HttpConfiguration channelConfig, Request request) { if (request.getHttpChannel().getEndPoint() instanceof DecryptedEndPoint) { if (request.getHttpURI().getScheme()==null) request.setScheme(HttpScheme.HTTPS.asString()); SslConnection.DecryptedEndPoint ssl_endp = (DecryptedEndPoint)request.getHttpChannel().getEndPoint(); SslConnection sslConnection = ssl_endp.getSslConnection(); SSLEngine sslEngine=sslConnection.getSSLEngine(); customize(sslEngine,request); } if (HttpScheme.HTTPS.is(request.getScheme())) customizeSecure(request); }
@Override public void close() { if (!isClosed()) { try { if (BufferUtil.hasContent(_aggregate)) _channel.write(_aggregate, !_channel.getResponse().isIncluding()); else _channel.write(BufferUtil.EMPTY_BUFFER, !_channel.getResponse().isIncluding()); } catch(IOException e) { _channel.getEndPoint().shutdownOutput(); LOG.ignore(e); } } closed(); }
@Override public void close() { if (!isClosed()) { try { if (BufferUtil.hasContent(_aggregate)) _channel.write(_aggregate, !_channel.getResponse().isIncluding()); else _channel.write(BufferUtil.EMPTY_BUFFER, !_channel.getResponse().isIncluding()); } catch(IOException e) { _channel.getEndPoint().shutdownOutput(); LOG.ignore(e); } } closed(); }
@Override public void customize(Connector connector, HttpConfiguration channelConfig, Request request) { EndPoint endp = request.getHttpChannel().getEndPoint(); if (endp instanceof DecryptedEndPoint) { SslConnection.DecryptedEndPoint ssl_endp = (DecryptedEndPoint)endp; SslConnection sslConnection = ssl_endp.getSslConnection(); SSLEngine sslEngine=sslConnection.getSSLEngine(); customize(sslEngine,request); if (request.getHttpURI().getScheme()==null) request.setScheme(HttpScheme.HTTPS.asString()); } else if (endp instanceof ProxyConnectionFactory.ProxyEndPoint) { ProxyConnectionFactory.ProxyEndPoint proxy = (ProxyConnectionFactory.ProxyEndPoint)endp; if (request.getHttpURI().getScheme()==null && proxy.getAttribute(ProxyConnectionFactory.TLS_VERSION)!=null) request.setScheme(HttpScheme.HTTPS.asString()); } if (HttpScheme.HTTPS.is(request.getScheme())) customizeSecure(request); }