Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MDL-25299 mnet: Fixed validation when no public key is provided

  • Loading branch information...
commit 8f6fd84c7709222e3622ccf386b18270a500a7e5 1 parent e0d5a17
@samhemelryk samhemelryk authored
Showing with 6 additions and 2 deletions.
  1. +4 −1 admin/mnet/peer_forms.php
  2. +1 −0  lang/en/mnet.php
  3. +1 −1  mnet/peer.php
View
5 admin/mnet/peer_forms.php
@@ -98,6 +98,7 @@ function definition() {
$mform->addElement('textarea', 'public_key', get_string('publickey', 'mnet'), array('rows' => 17, 'cols' => 100, 'class' => 'smalltext'));
$mform->setType('public_key', PARAM_PEM);
+ $mform->addRule('public_key', get_string('required'), 'required');
// finished with form controls, now the static informational stuff
if ($mnet_peer && !empty($mnet_peer->bootstrapped)) {
@@ -160,7 +161,9 @@ function validation($data) {
}
$mnet_peer = new mnet_peer(); // idiotic api
$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 = '';
foreach ($mnet_peer->error as $err) {
$errmsg .= $err['code'] . ': ' . $err['text'].'<br />';
View
1  lang/en/mnet.php
@@ -179,6 +179,7 @@
$string['promiscuous'] = 'Promiscuous';
$string['publickey'] = 'Public key';
$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['reallydeleteserver'] = 'Are you sure you want to delete the server';
$string['receivedwarnings'] = 'The following warnings were received';
View
2  mnet/peer.php
@@ -155,7 +155,7 @@ function check_common_name($key) {
function check_credentials($key) {
$credentials = openssl_x509_parse($key);
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;
} elseif (array_key_exists('subjectAltName', $credentials['subject']) && $credentials['subject']['subjectAltName'] != $this->wwwroot) {
$a['subject'] = $credentials['subject']['subjectAltName'];
Please sign in to comment.
Something went wrong with that request. Please try again.