Revision: 1786
Author: olavmrk
Date: Fri Sep 25 00:53:50 2009
Log: saml: Use RelayState to save return URL for unsoliced response.
http://code.google.com/p/simplesamlphp/source/detail?r=1786

Modified:
  /trunk/modules/saml/lib/Auth/Source/SP.php
  /trunk/modules/saml/www/sp/saml2-acs.php

=======================================
--- /trunk/modules/saml/lib/Auth/Source/SP.php  Fri Sep 25 00:53:39 2009
+++ /trunk/modules/saml/lib/Auth/Source/SP.php  Fri Sep 25 00:53:50 2009
@@ -170,6 +170,10 @@
                 
$ar->setAssertionConsumerServiceURL(SimpleSAML_Module::getModuleURL('saml/sp/saml2-acs.php/'
 .  
$this->authId));
                $ar->setProtocolBinding(SAML2_Const::BINDING_HTTP_POST);

+               if (isset($state['SimpleSAML_Auth_Default.ReturnURL'])) {
+                       
$ar->setRelayState($state['SimpleSAML_Auth_Default.ReturnURL']);
+               }
+
                $id = SimpleSAML_Auth_State::saveState($state, 
'saml:sp:ssosent-saml2');
                $ar->setId($id);

@@ -386,7 +390,11 @@
                $state['Attributes'] = $authProcState['Attributes'];

                if (isset($state['saml:sp:isUnsoliced']) &&  
(bool)$state['saml:sp:isUnsoliced']) {
-                       $redirectTo = 
$source->getMetadata()->getString('RelayState', '/');
+                       if (isset($state['saml:sp:RelayState'])) {
+                               $redirectTo = $state['saml:sp:RelayState'];
+                       } else {
+                               $redirectTo = 
$source->getMetadata()->getString('RelayState', '/');
+                       }
                        SimpleSAML_Auth_Default::handleUnsolicedAuth($sourceId, 
$state,  
$redirectTo);
                }

=======================================
--- /trunk/modules/saml/www/sp/saml2-acs.php    Fri Sep 25 00:53:39 2009
+++ /trunk/modules/saml/www/sp/saml2-acs.php    Fri Sep 25 00:53:50 2009
@@ -28,6 +28,7 @@
        $state = array(
                'saml:sp:isUnsoliced' => TRUE,
                'saml:sp:AuthId' => $sourceId,
+               'saml:sp:RelayState' => $response->getRelayState(),
        );
  }


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"simpleSAMLphp commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/simplesamlphp-commits?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to