CAS_Client::_getClientUrl PHP Method

_getClientUrl() private method

Try to figure out the phpCas client URL with possible Proxys / Ports etc.
private _getClientUrl ( ) : string
return string Server URL with domain:port
    private function _getClientUrl()
    {
        $server_url = '';
        if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
            // explode the host list separated by comma and use the first host
            $hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']);
            // see rfc7239#5.3 and rfc7230#2.7.1: port is in HTTP_X_FORWARDED_HOST if non default
            return $hosts[0];
        } else {
            if (!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) {
                $server_url = $_SERVER['HTTP_X_FORWARDED_SERVER'];
            } else {
                if (empty($_SERVER['SERVER_NAME'])) {
                    $server_url = $_SERVER['HTTP_HOST'];
                } else {
                    $server_url = $_SERVER['SERVER_NAME'];
                }
            }
        }
        if (!strpos($server_url, ':')) {
            if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
                $server_port = $_SERVER['SERVER_PORT'];
            } else {
                $ports = explode(',', $_SERVER['HTTP_X_FORWARDED_PORT']);
                $server_port = $ports[0];
            }
            if ($this->_isHttps() && $server_port != 443 || !$this->_isHttps() && $server_port != 80) {
                $server_url .= ':';
                $server_url .= $server_port;
            }
        }
        return $server_url;
    }
CAS_Client