diff --git a/VERSIONS_HOTLINE/180601 b/VERSIONS_HOTLINE/180601
new file mode 100644
index 0000000000000000000000000000000000000000..fcb30d082f518195d97fa6568a5a6cfd2e7ca07d
--- /dev/null
+++ b/VERSIONS_HOTLINE/180601
@@ -0,0 +1 @@
+hotline#180601 : Ajoute la redirection Cvs2 en accés site
\ No newline at end of file
diff --git a/library/digital_resources/Cvs2/Config.php b/library/digital_resources/Cvs2/Config.php
index 160aadc1e08cf344e6f681b146269b27b9346f15..df27541b7b08db84321e555bc08dadcaf4a260d2 100644
--- a/library/digital_resources/Cvs2/Config.php
+++ b/library/digital_resources/Cvs2/Config.php
@@ -105,7 +105,7 @@ class Cvs2_Config extends Class_DigitalResource_Config {
 
 
   public function getSsoUrl(Class_Users $user) : string {
-    return $this->getAdminVar('CATALOG_URL');
+    return (new Cvs2_Service($this))->getSiteAccessFor($user);
   }
 
 
@@ -126,7 +126,7 @@ class Cvs2_Config extends Class_DigitalResource_Config {
     if ($this->_isAccesDirectFor($album))
       return (new Cvs2_AccesDirect($album))->url();
 
-    return $this->getAdminVar('CATALOG_URL') . ($album ? '/album/' . $album->getIdOrigine() : '');
+    return $this->getSsoUrl($user) . ($album ? '/album/' . $album->getIdOrigine() : '');
   }
 
 
diff --git a/library/digital_resources/Cvs2/Service.php b/library/digital_resources/Cvs2/Service.php
index 9218eb89ee93be6cef071050d9c9d65f24eb6236..aed04c4fa15b0e8019395e15cc85d05dc0846ad6 100644
--- a/library/digital_resources/Cvs2/Service.php
+++ b/library/digital_resources/Cvs2/Service.php
@@ -281,4 +281,42 @@ class Cvs2_Service extends Class_DigitalResource_Service {
 
     return $harvestedIds;
   }
+
+
+  public function getSiteAccessFor($user) {
+    $response = $this->_callSiteAccess($user);
+
+    $parser = new Cvs_Service_Parser_SiteAccess;
+    $parser->parseXML($response);
+
+    return $parser->isSuccess() ? $this->getConfig()->getAdminVar('CATALOG_URL') : '';
+  }
+
+
+  protected function _callSiteAccess($user) {
+    $xml = $this->getSiteAccessXML($user);
+    return $this->httpPost($xml);
+  }
+
+
+  public function getSiteAccessXML($user) {
+    $this->_user = $user;
+
+    $params = ['querystring' => '',
+               'affichage' => 'complet'];
+
+    $closure = function($xml, $params) {
+      $this->_appendSiteAccess($xml, $params);
+    };
+
+    return $this->_getXML('acces_site', $params, $closure);
+  }
+
+
+  protected function _appendSiteAccess($xml, $params) {
+    $body = $xml->getElementsByTagName('body')->item(0);
+
+    $this->_cdataIn($xml, $body, 'querystring', urldecode($params['querystring']));
+    $body->appendChild($xml->createElement('affichage', $params['affichage']));
+  }
 }
diff --git a/library/digital_resources/Cvs2/tests/Cvs2Test.php b/library/digital_resources/Cvs2/tests/Cvs2Test.php
index f79a02b362f5db1860216ac72b8e187549c143c5..5595ebd5e71a10a2ff022e5cb0852d6c362b212c 100644
--- a/library/digital_resources/Cvs2/tests/Cvs2Test.php
+++ b/library/digital_resources/Cvs2/tests/Cvs2Test.php
@@ -39,6 +39,7 @@ abstract class Cvs2ActivatedTestCase extends AbstractControllerTestCase {
     Class_AdminVar::set('Cvs2_SOURCEPASSWORD', '22227');
     Class_AdminVar::set('Cvs2_API_URL', 'http://cvs.api.org');
     Class_AdminVar::set('Cvs2_LOGINTEST', 'cvs_login_test');
+    Class_AdminVar::set('Cvs2_CATALOG_URL', 'http://cvs-site.com');
 
     Cvs2_Service::setTimeSource((new TimeSourceForTest)->setTime(1369640315));
 
@@ -105,6 +106,42 @@ abstract class Cvs2ActivatedTestCase extends AbstractControllerTestCase {
 
 
 
+class Cvs2ActivatedAccessSiteSsoTestCase extends Cvs2ActivatedTestCase {
+
+  public function setUp() {
+    parent::setUp();
+
+    ZendAfi_Auth::getInstance()->logUser($this->_user);
+
+    $web_client = $this->mock()
+                       ->whenCalled('postData')
+                       ->answers('<?xml version="1.0" encoding="UTF-8"?>
+<response>
+  <success>1</success>
+  <key>f97cf6c572af9018f7f018a2220bce0d</key>
+  <time>1526288804</time>
+  <action>acces_site</action>
+  <data>
+    <url>https://rayonnages.mediatheques.fr/?ln=&amp;con=090021b6dae3bf74759e4e0e47f754af&amp;if=0</url>
+    <token>090021b6dae3bf74759e4e0e47f754af</token>
+  </data>
+</response>');
+
+    Class_WebService_Abstract::setHttpClient($web_client);
+  }
+
+
+  /** @test */
+  public function shouldRedirectToCvs2() {
+    $this->dispatch('/modules/cvs2/123', true);
+    $this->assertXPathContentContains('//script',
+                                      'document.location.href="http://cvs-site.com',
+                                      $this->_response->getBody());
+  }
+}
+
+
+
 
 abstract class Cvs2ActivatedAdminLoggedTestCase extends Cvs2ActivatedTestCase {