public function testCreateDeflatedSAMLRequestURLParameter() { $request = new OneLogin_Saml_AuthRequest($this->_settings); $authUrl = $request->getRedirectUrl(); $this->assertRegExp('#^http://stuff\\.com\\?SAMLRequest=#', $authUrl); $exploded = explode('=', $authUrl); $payload = urldecode($exploded[sizeof($exploded) - 1]); $decoded = base64_decode($payload); $inflated = gzinflate($decoded); $this->assertRegExp('#^<samlp:AuthnRequest#', $inflated); }
/** * Tests the OneLogin_Saml_AuthRequest Constructor and * the getRedirectUrl method * The creation of a deflated SAML Request * * @covers OneLogin_Saml_AuthRequest * @covers OneLogin_Saml_AuthRequest::getRedirectUrl */ public function testCreateDeflatedSAMLRequestURLParameter() { $request = new OneLogin_Saml_AuthRequest($this->_settings); $authUrl = $request->getRedirectUrl(); $this->assertRegExp('#^http://stuff\\.com\\?SAMLRequest=#', $authUrl); parse_str(parse_url($authUrl, PHP_URL_QUERY), $exploded); // parse_url already urldecode de params so is not required. $payload = $exploded['SAMLRequest']; $decoded = base64_decode($payload); $inflated = gzinflate($decoded); $this->assertRegExp('#^<samlp:AuthnRequest#', $inflated); $request2 = new OneLogin_Saml_AuthRequest($this->_settings); $authUrl2 = $request2->getRedirectUrl('http://sp.example.com'); $this->assertRegExp('#^http://stuff\\.com\\?SAMLRequest=#', $authUrl2); parse_str(parse_url($authUrl2, PHP_URL_QUERY), $exploded2); // parse_url already urldecode de params so is not required. $this->assertEquals('http://sp.example.com', $exploded2['RelayState']); $payload2 = $exploded2['SAMLRequest']; $decoded2 = base64_decode($payload2); $inflated2 = gzinflate($decoded2); $this->assertRegExp('#^<samlp:AuthnRequest#', $inflated2); }
<?php /** * SAMPLE Code to demonstrate how to initiate a SAML Authorization request * * When the user visits this URL, the browser will be redirected to the SSO * IdP with an authorization request. If successful, it will then be * redirected to the consume URL (specified in settings) with the auth * details. */ error_reporting(E_ALL); $settings = null; require 'settings.php'; $authRequest = new OneLogin_Saml_AuthRequest($settings); $url = $authRequest->getRedirectUrl(); header("Location: {$url}");
/** * Send Auth Request * * @author Ashish Kataria */ public function SendAuthRequest() { $_authRequest = new OneLogin_Saml_AuthRequest($this->_samlSsoSettings); $_url = $_authRequest->getRedirectUrl(); header("Location: {$_url}"); }