1212use SimpleSAML \Logger ;
1313use SimpleSAML \Module \authoauth2 \Auth \Source \OAuth2 ;
1414use SimpleSAML \Module \authoauth2 \Auth \Source \OpenIDConnect ;
15+ use SimpleSAML \Module \authoauth2 \Codebooks \LegacyRoutesEnum ;
16+ use SimpleSAML \Module \authoauth2 \Codebooks \RoutesEnum ;
1517use SimpleSAML \Module \authoauth2 \Controller \Traits \RequestTrait ;
1618use SimpleSAML \Module \authoauth2 \locators \SourceServiceLocator ;
1719use Symfony \Component \HttpFoundation \Request ;
@@ -55,9 +57,8 @@ public function __construct(Configuration $config = null)
5557 */
5658 public function loggedout (Request $ request ): void
5759 {
58- Logger::debug ('authoauth2: logout request= ' . var_export ($ request ->request ->all (), true ));
59-
6060 $ this ->parseRequest ($ request );
61+ Logger::debug ('authoauth2: logout request= ' . var_export ($ this ->requestParams , true ));
6162
6263 \assert (\is_array ($ this ->state ));
6364
@@ -72,19 +73,22 @@ public function loggedout(Request $request): void
7273 */
7374 public function logout (Request $ request ): void
7475 {
75- Logger::debug ('authoauth2: logout request= ' . var_export ($ request ->request ->all (), true ));
76+ $ this ->parseRequestParamsSingleton ($ request );
77+ Logger::debug ('authoauth2: logout request= ' . var_export ($ this ->requestParams , true ));
7678 // Find the authentication source
77- if (!$ request -> query -> has ( 'authSource ' )) {
79+ if (!isset ( $ this -> requestParams [ 'authSource ' ] )) {
7880 throw new BadRequest ('No authsource in the request ' );
7981 }
80- $ sourceId = $ request -> query -> get ( 'authSource ' ) ;
82+ $ sourceId = $ this -> requestParams [ 'authSource ' ] ;
8183 if (empty ($ sourceId ) || !\is_string ($ sourceId )) {
8284 throw new BadRequest ('Authsource ID invalid ' );
8385 }
86+ $ logoutRoute = $ this ->config ->getOptionalBoolean ('useLegacyRoutes ' , false ) ?
87+ LegacyRoutesEnum::LegacyLogout->value : RoutesEnum::Logout->value ;
8488 $ this ->getAuthSource ($ sourceId )
8589 ->logout ([
8690 'oidc:localLogout ' => true ,
87- 'ReturnTo ' => $ this ->config ->getBasePath () . ' logout.php ' ,
91+ 'ReturnTo ' => $ this ->config ->getBasePath () . $ logoutRoute ,
8892 ]);
8993 }
9094
0 commit comments