mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 08:55:15 +02:00
MDL-75479 auth_cas: Pass base service URL for the CAS client
Since phpCAS v1.6.0, a required base service URL parameterneeds to be passed to phpCAS::client(). This is basically the protocol, hostname, and port number (optional) of the site connecting to the CAS server in order for it to perform service URL discovery.
This commit is contained in:
parent
0cdfceb0f7
commit
9cf92be84d
@ -179,11 +179,20 @@ class auth_plugin_cas extends auth_plugin_ldap {
|
||||
static $connected = false;
|
||||
|
||||
if (!$connected) {
|
||||
// Form the base URL of the server with just the protocol and hostname.
|
||||
$serverurl = new moodle_url("/");
|
||||
$servicebaseurl = $serverurl->get_scheme() ? $serverurl->get_scheme() . "://" : '';
|
||||
$servicebaseurl .= $serverurl->get_host();
|
||||
// Add the port if set.
|
||||
$servicebaseurl .= $serverurl->get_port() ? ':' . $serverurl->get_port() : '';
|
||||
|
||||
// Make sure phpCAS doesn't try to start a new PHP session when connecting to the CAS server.
|
||||
if ($this->config->proxycas) {
|
||||
phpCAS::proxy($this->config->casversion, $this->config->hostname, (int) $this->config->port, $this->config->baseuri, false);
|
||||
phpCAS::proxy($this->config->casversion, $this->config->hostname, (int) $this->config->port, $this->config->baseuri,
|
||||
$servicebaseurl, false);
|
||||
} else {
|
||||
phpCAS::client($this->config->casversion, $this->config->hostname, (int) $this->config->port, $this->config->baseuri, false);
|
||||
phpCAS::client($this->config->casversion, $this->config->hostname, (int) $this->config->port,
|
||||
$this->config->baseuri, $servicebaseurl, false);
|
||||
}
|
||||
// Some CAS installs require SSLv3 that should be explicitly set.
|
||||
if (!empty($this->config->curl_ssl_version)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user