diff --git a/library/ZendOpenId/Consumer/GenericConsumer.php b/library/ZendOpenId/Consumer/GenericConsumer.php index 38e5279..4c5f260 100644 --- a/library/ZendOpenId/Consumer/GenericConsumer.php +++ b/library/ZendOpenId/Consumer/GenericConsumer.php @@ -104,10 +104,11 @@ public function __construct(Storage\AbstractStorage $storage = null, * @param mixed $extensions extension object or array of extensions objects * @param Response $response an optional response * object to perform HTTP or HTML form redirection + * @param string $method HTTP method used to redirect to server * @return bool */ public function login($id, $returnTo = null, $root = null, $extensions = null, - Response $response = null) + Response $response = null, $method = 'GET') { return $this->_checkId( false, @@ -115,7 +116,8 @@ public function login($id, $returnTo = null, $root = null, $extensions = null, $returnTo, $root, $extensions, - $response); + $response, + $method); } /** @@ -782,7 +784,7 @@ protected function _discovery(&$id, &$server, &$version) * @return bool */ protected function _checkId($immediate, $id, $returnTo=null, $root=null, - $extensions=null, Response $response = null) + $extensions=null, Response $response = null, $method = 'GET') { $this->_setError(''); @@ -863,7 +865,7 @@ protected function _checkId($immediate, $id, $returnTo=null, $root=null, return false; } - OpenId::redirect($server, $params, $response); + OpenId::redirect($server, $params, $response, $method); return true; } diff --git a/library/ZendOpenId/OpenId.php b/library/ZendOpenId/OpenId.php index 348c20b..836e89c 100644 --- a/library/ZendOpenId/OpenId.php +++ b/library/ZendOpenId/OpenId.php @@ -438,9 +438,11 @@ public static function redirect($url, $params = null, ""); } - $response->setStatusCode(302); + if ($method == 'GET') { + $response->setStatusCode(302); - $response->getHeaders()->addHeaderLine('Location', $url); + $response->getHeaders()->addHeaderLine('Location', $url); + } if (!headers_sent()) { header($response->renderStatusLine());