From 64b06839e284bfbf083c98058dbfe2d4fafd9f2c Mon Sep 17 00:00:00 2001
From: Anita Viglione <10.demma@gmail.com>
Date: Fri, 2 May 2025 12:24:44 +1000
Subject: [PATCH] Sent logout routing to the route subscriber
---
 openid_connect.routing.yml      | 20 ++++++++++----------
 openid_connect.services.yml     |  4 ++++
 src/Routing/RouteSubscriber.php |  3 +++
 3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/openid_connect.routing.yml b/openid_connect.routing.yml
index f74ebfe..adf3564 100644
--- a/openid_connect.routing.yml
+++ b/openid_connect.routing.yml
@@ -74,16 +74,16 @@ openid_connect.accounts_controller_index:
   requirements:
     _custom_access: '\Drupal\openid_connect\Form\OpenIDConnectAccountsForm::access'
 
-openid_connect.logout:
-  path: '/user/logout'
-  defaults:
-    _controller: '\Drupal\openid_connect\Controller\OpenIDConnectRedirectController::redirectLogout'
-    _title: 'End session'
-  requirements:
-    _user_is_logged_in: 'TRUE'
-    _csrf_token: 'TRUE'
-  options:
-    no_cache: TRUE
+#openid_connect.logout:
+#  path: '/user/logout'
+#  defaults:
+#    _controller: '\Drupal\openid_connect\Controller\OpenIDConnectRedirectController::redirectLogout'
+#    _title: 'End session'
+#  requirements:
+#    _user_is_logged_in: 'TRUE'
+#    _csrf_token: 'TRUE'
+#  options:
+#    no_cache: TRUE
 
 openid_connect.login:
   path: '/user/login/openid_connect'
diff --git a/openid_connect.services.yml b/openid_connect.services.yml
index 52ca9b1..bd3b7c7 100644
--- a/openid_connect.services.yml
+++ b/openid_connect.services.yml
@@ -43,3 +43,7 @@ services:
   openid_connect.autodiscover:
     class: Drupal\openid_connect\OpenIDConnectAutoDiscover
   Drupal\openid_connect\OpenIDConnectAutoDiscover: '@openid_connect.autodiscover'
+  openid_connect.route_subscriber:
+    class: Drupal\openid_connect\Routing\RouteSubscriber
+    tags:
+      - { name: event_subscriber }
diff --git a/src/Routing/RouteSubscriber.php b/src/Routing/RouteSubscriber.php
index e95199d..f758193 100644
--- a/src/Routing/RouteSubscriber.php
+++ b/src/Routing/RouteSubscriber.php
@@ -19,6 +19,9 @@ class RouteSubscriber extends RouteSubscriberBase {
     // Reroute the default user.logout route.
     if ($route = $collection->get('user.logout')) {
       $route->setDefault('_controller', '\Drupal\openid_connect\Controller\OpenIDConnectRedirectController::redirectLogout');
+      $route->setRequirement('_user_is_logged_in', TRUE);
+      $route->setRequirement('_csrf_token', TRUE);
+      $route->setOption('no_cache', TRUE);
     }
   }
 
-- 
GitLab