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
-~----------~----~----~----~------~----~------~--~---