Package com.taobao.jetty.apr

Source Code of com.taobao.jetty.apr.Ajp13AprSocketConnector

/**
*
*/
package com.taobao.jetty.apr;

import java.io.IOException;

import org.eclipse.jetty.ajp.Ajp13Connection;
import org.eclipse.jetty.ajp.Ajp13Packet;
import org.eclipse.jetty.ajp.Ajp13Request;
import org.eclipse.jetty.http.HttpSchemes;
import org.eclipse.jetty.io.Connection;
import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.util.log.Log;

/**
* @author lovingprince
*
*/
public class Ajp13AprSocketConnector extends AprSocketConnector {
  static String __secretWord = null;
  static boolean __allowShutdown = false;

  public Ajp13AprSocketConnector() {
    super.setRequestHeaderSize(Ajp13Packet.MAX_PACKET_SIZE);
    super.setResponseHeaderSize(Ajp13Packet.MAX_PACKET_SIZE);
    super.setRequestBufferSize(Ajp13Packet.MAX_PACKET_SIZE);
    super.setResponseBufferSize(Ajp13Packet.MAX_PACKET_SIZE);
    // IN AJP protocol the socket stay open, so
    // by default the time out is set to -1 seconds
    super.setMaxIdleTime(-1);
  }

  @Override
  protected void doStart() throws Exception {
    super.doStart();
    Log.info("AJP13 is not a secure protocol. Please protect port {}",
        Integer.toString(getLocalPort()));
  }

  /* ------------------------------------------------------------ */
  /*
   * (non-Javadoc)
   *
   * @see
   * org.eclipse.jetty.server.bio.SocketConnector#customize(org.eclipse.io
   * .EndPoint, org.eclipse.jetty.server.Request)
   */
  @Override
  public void customize(EndPoint endpoint, Request request)
      throws IOException {
    super.customize(endpoint, request);
    if (request.isSecure())
      request.setScheme(HttpSchemes.HTTPS);
  }

  /* ------------------------------------------------------------ */
  @Override
  protected Connection newConnection(EndPoint endpoint) {
    return new Ajp13Connection(this, endpoint, getServer());
  }

  /* ------------------------------------------------------------ */
  // Secured on a packet by packet bases not by connection
  @Override
  public boolean isConfidential(Request request) {
    return ((Ajp13Request) request).isSslSecure();
  }

  /* ------------------------------------------------------------ */
  // Secured on a packet by packet bases not by connection
  @Override
  public boolean isIntegral(Request request) {
    return ((Ajp13Request) request).isSslSecure();
  }

  /* ------------------------------------------------------------ */
  @Deprecated
  public void setHeaderBufferSize(int headerBufferSize) {
    Log.debug(Log.IGNORED);
  }

  /* ------------------------------------------------------------ */
  @Override
  public void setRequestBufferSize(int requestBufferSize) {
    Log.debug(Log.IGNORED);
  }

  /* ------------------------------------------------------------ */
  @Override
  public void setResponseBufferSize(int responseBufferSize) {
    Log.debug(Log.IGNORED);
  }

  /* ------------------------------------------------------------ */
  public void setAllowShutdown(boolean allowShutdown) {
    Log.warn("AJP13: Shutdown Request is: " + allowShutdown);
    __allowShutdown = allowShutdown;
  }

  /* ------------------------------------------------------------ */
  public void setSecretWord(String secretWord) {
    Log.warn("AJP13: Shutdown Request secret word is : " + secretWord);
    __secretWord = secretWord;
  }

}
TOP

Related Classes of com.taobao.jetty.apr.Ajp13AprSocketConnector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.