1 <?php
2 
3 /**
4  * Swift Mailer PLAIN Authenticator Mechanism
5  * Please read the LICENSE file
6  * @author Chris Corbyn <chris@w3style.co.uk>
7  * @package Swift_Authenticator
8  * @license GNU Lesser General Public License
9  */
10 
11 require_once dirname(__FILE__) . "/../ClassLoader.php";
12 Swift_ClassLoader::load("Swift_Authenticator");
13 
14 /**
15  * Swift PLAIN Authenticator
16  * This form of authentication is unbelievably insecure since everything is done plain-text
17  * @package Swift_Authenticator
18  * @author Chris Corbyn <chris@w3style.co.uk>
19  */
20 class Swift_Authenticator_PLAIN implements Swift_Authenticator
21 {
22   /**
23    * Try to authenticate using the username and password
24    * Returns false on failure
25    * @param string The username
26    * @param string The password
27    * @param Swift The instance of Swift this authenticator is used in
28    * @return boolean
29    */
30   public function isAuthenticated($user, $pass, Swift $swift)
31   {
32     try {
33       //The authorization string uses ascii null as a separator (See RFC 2554)
34       $credentials = base64_encode($user . chr(0) . $user . chr(0) . $pass);
35       $swift->command("AUTH PLAIN " . $credentials, 235);
36     } catch (Swift_ConnectionException $e) {
37       $swift->reset();
38       return false;
39     }
40     return true;
41   }
42   /**
43    * Return the name of the AUTH extension this is for
44    * @return string
45    */
46   public function getAuthExtensionName()
47   {
48     return "PLAIN";
49   }
50 }
51