mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-25299 mnet: Fixed validation when no public key is provided
This commit is contained in:
parent
0dde394db5
commit
4460312d08
3 changed files with 6 additions and 2 deletions
|
@ -98,6 +98,7 @@ class mnet_review_host_form extends moodleform {
|
||||||
|
|
||||||
$mform->addElement('textarea', 'public_key', get_string('publickey', 'mnet'), array('rows' => 17, 'cols' => 100, 'class' => 'smalltext'));
|
$mform->addElement('textarea', 'public_key', get_string('publickey', 'mnet'), array('rows' => 17, 'cols' => 100, 'class' => 'smalltext'));
|
||||||
$mform->setType('public_key', PARAM_PEM);
|
$mform->setType('public_key', PARAM_PEM);
|
||||||
|
$mform->addRule('public_key', get_string('required'), 'required');
|
||||||
|
|
||||||
// finished with form controls, now the static informational stuff
|
// finished with form controls, now the static informational stuff
|
||||||
if ($mnet_peer && !empty($mnet_peer->bootstrapped)) {
|
if ($mnet_peer && !empty($mnet_peer->bootstrapped)) {
|
||||||
|
@ -160,7 +161,9 @@ class mnet_review_host_form extends moodleform {
|
||||||
}
|
}
|
||||||
$mnet_peer = new mnet_peer(); // idiotic api
|
$mnet_peer = new mnet_peer(); // idiotic api
|
||||||
$mnet_peer->wwwroot = $data['wwwroot']; // just hard-set this rather than bootstrap the object
|
$mnet_peer->wwwroot = $data['wwwroot']; // just hard-set this rather than bootstrap the object
|
||||||
if (!$credentials = $mnet_peer->check_credentials($data['public_key'])) {
|
if (empty($data['public_key'])) {
|
||||||
|
$errors['public_key'] = get_string('publickeyrequired', 'mnet');
|
||||||
|
} else if (!$credentials = $mnet_peer->check_credentials($data['public_key'])) {
|
||||||
$errmsg = '';
|
$errmsg = '';
|
||||||
foreach ($mnet_peer->error as $err) {
|
foreach ($mnet_peer->error as $err) {
|
||||||
$errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
|
$errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
|
||||||
|
|
|
@ -179,6 +179,7 @@ $string['profileimportfields'] = 'Fields to import';
|
||||||
$string['promiscuous'] = 'Promiscuous';
|
$string['promiscuous'] = 'Promiscuous';
|
||||||
$string['publickey'] = 'Public key';
|
$string['publickey'] = 'Public key';
|
||||||
$string['publickey_help'] = 'The public key is automatically obtained from the remote server.';
|
$string['publickey_help'] = 'The public key is automatically obtained from the remote server.';
|
||||||
|
$string['publickeyrequired'] = 'You must provide a public key.';
|
||||||
$string['publish'] = 'Publish';
|
$string['publish'] = 'Publish';
|
||||||
$string['reallydeleteserver'] = 'Are you sure you want to delete the server';
|
$string['reallydeleteserver'] = 'Are you sure you want to delete the server';
|
||||||
$string['receivedwarnings'] = 'The following warnings were received';
|
$string['receivedwarnings'] = 'The following warnings were received';
|
||||||
|
|
|
@ -155,7 +155,7 @@ class mnet_peer {
|
||||||
function check_credentials($key) {
|
function check_credentials($key) {
|
||||||
$credentials = openssl_x509_parse($key);
|
$credentials = openssl_x509_parse($key);
|
||||||
if ($credentials == false) {
|
if ($credentials == false) {
|
||||||
$this->error[] = array('code' => 3, 'text' => get_string("nonmatchingcert", 'mnet', array('','')));
|
$this->error[] = array('code' => 3, 'text' => get_string("nonmatchingcert", 'mnet', array('subject' => '','host' => '')));
|
||||||
return false;
|
return false;
|
||||||
} elseif (array_key_exists('subjectAltName', $credentials['subject']) && $credentials['subject']['subjectAltName'] != $this->wwwroot) {
|
} elseif (array_key_exists('subjectAltName', $credentials['subject']) && $credentials['subject']['subjectAltName'] != $this->wwwroot) {
|
||||||
$a['subject'] = $credentials['subject']['subjectAltName'];
|
$a['subject'] = $credentials['subject']['subjectAltName'];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue