diff --git a/library/Class/Multimedia/AuthenticateRequest.php b/library/Class/Multimedia/AuthenticateRequest.php
index 5f5e28545d44276f36f2c3e7e15fbc74b0419d3a..b44711b4840e264c704e8bce439ec13d130e3aa6 100644
--- a/library/Class/Multimedia/AuthenticateRequest.php
+++ b/library/Class/Multimedia/AuthenticateRequest.php
@@ -53,12 +53,14 @@ class Class_Multimedia_AuthenticateRequest {
 			|| !($poste = $request->getParam('poste'))
 			|| !($site = $request->getParam('site')))
 			return $this->_error('MissingParameter');
-		
-		if (!$user = Class_Users::getLoader()->findFirstBy(array('login' => $login)))
-			return $this->_error('UserNotFound');
 
-		if (($user->getPassword() !== $password))
-			return $this->_error('PasswordIsWrong');
+		if (!ZendAfi_Auth::getInstance()->authenticateLoginPassword($login, $password)) {
+			if (Class_Users::findFirstBy(['login' => $login]))
+					return $this->_error('PasswordIsWrong');
+			return 	$this->_error('UserNotFound');
+		}
+
+		$user = Class_Users::getIdentity();
 
 		if (!$user->isAbonnementValid())
 			return $this->_error('SubscriptionExpired');
@@ -121,15 +123,9 @@ class Class_Multimedia_AuthenticateRequest {
 	}
 
 
-	/** @return Class_Multimedia_Device */
-	public function getDevice() {
-		return $this->_device;
-	}
-
-
 	/** 
 	 * @param string $code
-	 * @return Class_Multimedia_Device 
+	 * @return Class_Multimedia_AuthenticateRequest
 	 */
 	protected  function _error($code) {
 		$this->_error = $code;
diff --git a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
index af40997c8044a4388754a6af4fe2a9d6851e2878..4b3d147ada887ea59693ce4c7ef12ca8b5fdda91 100644
--- a/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
+++ b/tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php
@@ -58,14 +58,27 @@ trait TAbonneControllerMultimediaFixtureWithUserLaurentInDevsAgiles {
 
 
 abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractControllerTestCase {
-	protected $_json;
+	protected $_json, $_auth;
 
 	public function setUp() {
 		parent::setUp();
-		ZendAfi_Auth::getInstance()->clearIdentity();
+		$this->_auth = Storm_Test_ObjectWrapper::mock()
+			->whenCalled('authenticateLoginPassword')
+			->answers(false)
+			->whenCalled('hasIdentity')
+			->answers(false)
+			->whenCalled('getIdentity')
+			->answers(null);
+		
+		ZendAfi_Auth::setInstance($this->_auth);
 	}
 
 
+	public function tearDown() {
+		ZendAfi_Auth::setInstance(null);
+		parent::tearDown();
+	}
+
 	/**
 	 * @param $url string
 	 * @return stdClass
@@ -80,6 +93,13 @@ abstract class AbonneControllerMultimediaAuthenticateTestCase extends AbstractCo
 	 * @param $user Class_Users
 	 */
 	protected function _expectUserToLoad($user) {
+		$this->_auth
+			->whenCalled('authenticateLoginPassword')
+			->with($user->getLogin(), $user->getPassword())
+			->answers(true)
+			->whenCalled('getIdentity')
+			->answers($user);
+
 		Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Users')
 			->whenCalled('findFirstBy')
 			->with(array('login'=> $user->getLogin()))