⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractconnector.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    thread.interrupt();            }        }    }        /* ------------------------------------------------------------ */    public void join() throws InterruptedException    {        Thread[] threads=_acceptorThread;        if (threads!=null)            for (int i=0;i<threads.length;i++)                if (threads[i]!=null)                    threads[i].join();    }    /* ------------------------------------------------------------ */    protected void configure(Socket socket)        throws IOException    {           try        {            socket.setTcpNoDelay(true);            if (_maxIdleTime >= 0)                socket.setSoTimeout(_maxIdleTime);            if (_soLingerTime >= 0)                socket.setSoLinger(true, _soLingerTime/1000);            else                socket.setSoLinger(false, 0);        }        catch (Exception e)        {            Log.ignore(e);        }    }    /* ------------------------------------------------------------ */    public void customize(EndPoint endpoint, Request request)        throws IOException    {        if (isForwarded())            checkForwardedHeaders(endpoint, request);    }    /* ------------------------------------------------------------ */    protected void checkForwardedHeaders(EndPoint endpoint, Request request)        throws IOException    {        HttpFields httpFields = request.getConnection().getRequestFields();                // Retrieving headers from the request        String forwardedHost = getLeftMostValue(httpFields.getStringField(getForwardedHostHeader()));        String forwardedServer = getLeftMostValue(httpFields.getStringField(getForwardedServerHeader()));        String forwardedFor = getLeftMostValue(httpFields.getStringField(getForwardedForHeader()));                if (_hostHeader!=null)        {            // Update host header                   httpFields.put(HttpHeaders.HOST_BUFFER, _hostHeader);            request.setServerName(null);            request.setServerPort(-1);            request.getServerName();        }        else if (forwardedHost != null)        {            // Update host header	            httpFields.put(HttpHeaders.HOST_BUFFER, forwardedHost);            request.setServerName(null);            request.setServerPort(-1);            request.getServerName();        }                if (forwardedServer != null)        {            // Use provided server name            request.setServerName(forwardedServer);        }                if (forwardedFor != null)        {            request.setRemoteAddr(forwardedFor);            InetAddress inetAddress = null;                        if (_useDNS)            {                try                {                    inetAddress = InetAddress.getByName(forwardedFor);                }                catch (UnknownHostException e)                {                    Log.ignore(e);                }            }                        request.setRemoteHost(inetAddress==null?forwardedFor:inetAddress.getHostName());        }    }    /* ------------------------------------------------------------ */    protected String getLeftMostValue(String headerValue) {        if (headerValue == null)            return null;                int commaIndex = headerValue.indexOf(',');                if (commaIndex == -1)        {            // Single value            return headerValue;        }        // The left-most value is the farthest downstream client        return headerValue.substring(0, commaIndex);    }    /* ------------------------------------------------------------ */    public void persist(EndPoint endpoint)        throws IOException    {          }        /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#getConfidentialPort()     */    public int getConfidentialPort()    {        return _confidentialPort;    }    /* ------------------------------------------------------------ */    /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#getConfidentialScheme()     */    public String getConfidentialScheme()    {        return _confidentialScheme;    }        /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#isConfidential(org.mortbay.jetty.Request)     */    public boolean isIntegral(Request request)    {        return false;    }    /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#getConfidentialPort()     */    public int getIntegralPort()    {        return _integralPort;    }        /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#getIntegralScheme()     */    public String getIntegralScheme()    {        return _integralScheme;    }        /* ------------------------------------------------------------ */    /*      * @see org.mortbay.jetty.Connector#isConfidential(org.mortbay.jetty.Request)     */    public boolean isConfidential(Request request)    {        return false;    }    /* ------------------------------------------------------------ */    /**     * @param confidentialPort The confidentialPort to set.     */    public void setConfidentialPort(int confidentialPort)    {        _confidentialPort = confidentialPort;    }    /* ------------------------------------------------------------ */    /**     * @param confidentialScheme The confidentialScheme to set.     */    public void setConfidentialScheme(String confidentialScheme)    {        _confidentialScheme = confidentialScheme;    }    /* ------------------------------------------------------------ */    /**     * @param integralPort The integralPort to set.     */    public void setIntegralPort(int integralPort)    {        _integralPort = integralPort;    }    /* ------------------------------------------------------------ */    /**     * @param integralScheme The integralScheme to set.     */    public void setIntegralScheme(String integralScheme)    {        _integralScheme = integralScheme;    }    /* ------------------------------------------------------------ */    public Continuation newContinuation()    {        return new WaitingContinuation();    }        /* ------------------------------------------------------------ */    protected abstract void accept(int acceptorID) throws IOException, InterruptedException;    /* ------------------------------------------------------------ */    public void stopAccept(int acceptorID) throws Exception    {    }        /* ------------------------------------------------------------ */    public boolean getResolveNames()    {        return _useDNS;    }        /* ------------------------------------------------------------ */    public void setResolveNames(boolean resolve)    {        _useDNS=resolve;    }        /* ------------------------------------------------------------ */    /**      * Is reverse proxy handling on?     * @return true if this connector is checking the x-forwarded-for/host/server headers     */    public boolean isForwarded()    {        return _forwarded;    }        /* ------------------------------------------------------------ */    /**     * Set reverse proxy handling     * @param check true if this connector is checking the x-forwarded-for/host/server headers     */    public void setForwarded(boolean check)    {        if (check)            Log.debug(this+" is forwarded");        _forwarded=check;    }        /* ------------------------------------------------------------ */    public String getHostHeader()    {        return _hostHeader;    }        /* ------------------------------------------------------------ */    /**      * Set a forced valued for the host header to control what is returned     * by {@link ServletRequest#getServerName()} and {@link ServletRequest#getServerPort()}.     * This value is only used if {@link #isForwarded()} is true.     * @param hostHeader The value of the host header to force.     */    public void setHostHeader(String hostHeader)    {        _hostHeader=hostHeader;    }        /* ------------------------------------------------------------ */    public String getForwardedHostHeader()    {        return _forwardedHostHeader;    }        /* ------------------------------------------------------------ */    /**     * @param forwardedHostHeader The header name for forwarded hosts (default x-forwarded-host)     */    public void setForwardedHostHeader(String forwardedHostHeader)    {        _forwardedHostHeader=forwardedHostHeader;    }        /* ------------------------------------------------------------ */    public String getForwardedServerHeader()    {        return _forwardedServerHeader;    }        /* ------------------------------------------------------------ */    /**     * @param forwardedServerHeader The header name for forwarded server (default x-forwarded-server)     */    public void setForwardedServerHeader(String forwardedServerHeader)    {        _forwardedServerHeader=forwardedServerHeader;    }        /* ------------------------------------------------------------ */    public String getForwardedForHeader()    {        return _forwardedForHeader;    }        /* ------------------------------------------------------------ */    /**     * @param forwardedRemoteAddressHeader The header name for forwarded for (default x-forwarded-for)     */    public void setForwardedForHeader(String forwardedRemoteAddressHeader)    {        _forwardedForHeader=forwardedRemoteAddressHeader;    }        /* ------------------------------------------------------------ */    public String toString()    {        String name = this.getClass().getName();        int dot = name.lastIndexOf('.');        if (dot>0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -