diff --git a/VERSIONS_WIP/202853 b/VERSIONS_WIP/202853
new file mode 100644
index 0000000000000000000000000000000000000000..3ad1f49bc222176037acaa62d26fb7ad2b0b2bef
--- /dev/null
+++ b/VERSIONS_WIP/202853
@@ -0,0 +1 @@
+ - fonctionnalité #202853 : Changement URL cafeyn : migration automatique du lien modules/sso 
\ No newline at end of file
diff --git a/cosmogramme/sql/patch/patch_466.php b/cosmogramme/sql/patch/patch_466.php
new file mode 100644
index 0000000000000000000000000000000000000000..37a0bfaf1fcf8aad9be78bec43d835d4d4e1cbfe
--- /dev/null
+++ b/cosmogramme/sql/patch/patch_466.php
@@ -0,0 +1,8 @@
+<?php
+$adapter = Zend_Db_Table::getDefaultAdapter();
+try
+{
+  $adapter->query('update `bib_admin_var` set `valeur`="https://www.cafeyn.co/fr/loginexternal" where not `valeur`="" and `clef`="Cafeyn_SSO_URL";');
+}
+catch (Exception $e)
+{}
diff --git a/library/Class/Url.php b/library/Class/Url.php
index e6aaddf39edd9da127af1fd6fa3ccc606cfbbbea..04f7d1788de91e333f164d078abc844676a2a783 100644
--- a/library/Class/Url.php
+++ b/library/Class/Url.php
@@ -233,6 +233,12 @@ class Class_Url {
   }
 
 
+  public static function appendWithSlash(string $url, string $chunk): string
+  {
+    return rtrim($url , "/ \n\r\t\v\x00") .'/'. $chunk;
+  }
+
+
   protected static function _prependBaseUrl($url) {
     if('' === $url)
       return static::baseUrl();
diff --git a/library/digital_resources/Cafeyn/CasLink.php b/library/digital_resources/Cafeyn/CasLink.php
index 7b4d7ae475ed470d197066962c18cf873b66ac0b..1b91196801a78d637ee8975072707b29d5143699 100644
--- a/library/digital_resources/Cafeyn/CasLink.php
+++ b/library/digital_resources/Cafeyn/CasLink.php
@@ -25,6 +25,6 @@ class Cafeyn_CasLink {
     $config = Cafeyn_Config::getInstance();
     return $album
       ? $album->getExternalUri()
-      : $config->getAdminVar('SSO_URL') . $config->getAdminVar('ID');
+      : Class_Url::appendWithSlash($config->getAdminVar('SSO_URL'), $config->getAdminVar('ID'));
   }
 }
diff --git a/library/digital_resources/Cafeyn/tests/CafeynTest.php b/library/digital_resources/Cafeyn/tests/CafeynTest.php
index c7690beb92aab15a86cd09294286518ed94ac8c3..b7b34636dfe06d6efb5b1e687e422c3fce9eb706 100644
--- a/library/digital_resources/Cafeyn/tests/CafeynTest.php
+++ b/library/digital_resources/Cafeyn/tests/CafeynTest.php
@@ -24,7 +24,7 @@ class CafeynAdminVars {
 
   public static function activate() {
     Class_AdminVar::set('Cafeyn_ID', '66');
-    Class_AdminVar::set('Cafeyn_SSO_URL', 'https://www.cafeyn.co/loginexternal/');
+    Class_AdminVar::set('Cafeyn_SSO_URL', "https://www.cafeyn.co/loginexternal////   \t\n");
     Class_AdminVar::set('Cafeyn_API_PASSWORD', 'POIS');
     Class_AdminVar::set('Cafeyn_API_ID', 'mybib');
     Class_AdminVar::set('Cafeyn_HARVEST_URL', 'https://harvest-cafeyn');
diff --git a/tests_db/UpgradeDBTest.php b/tests_db/UpgradeDBTest.php
index 6f8fffaa76803ba6ab598de4a8cfb86184f68403..e96e805e33680e40e133254f119dc131b5ea200b 100644
--- a/tests_db/UpgradeDBTest.php
+++ b/tests_db/UpgradeDBTest.php
@@ -5729,7 +5729,7 @@ class UpgradeDB_461_Test extends UpgradeDBTestCase {
 
 
 
-abstract class UpgradeDB_462_Cafeyn_TestCase extends UpgradeDBTestCase {
+abstract class AbstractCafeyn_TestCase extends UpgradeDBTestCase {
 
   protected int $_album_artevod_count = 0;
   protected int $_album_artevod_inserted = 0;
@@ -5795,7 +5795,7 @@ abstract class UpgradeDB_462_Cafeyn_TestCase extends UpgradeDBTestCase {
 
 
 
-class UpgradeDB_462_Test_BatchEnabledTest extends UpgradeDB_462_Cafeyn_TestCase {
+class UpgradeDB_462_Test_BatchEnabledTest extends AbstractCafeyn_TestCase {
 
   public function prepare()
   {
@@ -5829,7 +5829,7 @@ class UpgradeDB_462_Test_BatchEnabledTest extends UpgradeDB_462_Cafeyn_TestCase
 
 
 
-class UpgradeDB_462_Test_BatchDisabledTest extends UpgradeDB_462_Cafeyn_TestCase {
+class UpgradeDB_462_Test_BatchDisabledTest extends AbstractCafeyn_TestCase {
 
   public function prepare()
   {
@@ -6011,3 +6011,31 @@ class UpgradeDB_465_Test extends UpgradeDBTestCase
     $this->assertEquals('1000 1001', $data['a_moderer']);
   }
 }
+
+
+
+
+class UpgradeDB_466_Test extends UpgradeDBTestCase
+{
+
+  public function prepare()
+  {
+    $this
+      ->query('update bib_admin_var set valeur="myoldurl" where clef="Cafeyn_SSO_URL"');
+
+    if (!$this
+        ->query('select count(*) from bib_admin_var where clef ="Cafeyn_SSO_URL"')
+        ->fetch()['count(*)'])
+      $this
+        ->query('insert into bib_admin_var (valeur, clef) values ("myoldurl", "Cafeyn_SSO_URL")');
+  }
+
+
+  /**
+   * @test
+   */
+  public function cafeynSsoUrlShouldBeModified()
+  {
+    $this->assertEquals("https://www.cafeyn.co/fr/loginexternal", Class_AdminVar::get('Cafeyn_SSO_URL'));
+  }
+}