/**
  * Authenticate Shibboleth User.
  *
  * @param string $adusername The campus AD Username
  *
  * @return bool
  *
  * @api
  */
 public function authenticateShibbolethUser(string $adusername = null) : bool
 {
     $adusername = null === $adusername ? $this->getProperty('adusername') : $adusername;
     $this->validateUsername($adusername) ?: requestRoute(Config::REDIRECT_LOGIN . 'index.php?v=' . $this->encryption->numHash(4, 'encrypt') . ';');
     $data = $this->dbh->getEmailAddress($adusername)->getRecord();
     if (1 === $data['record_count']) {
         $this->setProperty('email', trim($data['email']));
         return true;
     } else {
         $this->dbh->insertiNetRecordLog($adusername, '-- Login Error: Email from given adusername not found in personnel database.(ADUSERNAME)');
         return false;
     }
 }