Commit Graph

742 Commits

Author SHA1 Message Date
Beau Simensen
6296a241a8 Standalone query string normalization 2012-07-02 13:11:17 -07:00
Fabien Potencier
6dd342c351 fixed previous merge 2012-07-01 23:25:00 +02:00
Fabien Potencier
d2b5208a77 merged branch dlsniper/session-start-fix (PR #4541)
Commits
-------

f72ba0a Fixed detection of an active session

Discussion
----------

[WIP][HttpFoundation][Session] Fixed detection of an active session

Bug fix: yes
Feature addition: no
Backwards compatibility break: not sure
Symfony2 tests pass: no
Fixes the following tickets: #4529
Todo: Fix failing tests
License of the code: MIT
Documentation PR: ~

This fixes the problem when the session variable inside $request now has always data in it as it's now more powerful but this introduces the problem that the old way of detecting if a session is started or not doesn't work anymore.

---------------------------------------------------------------------------

by travisbot at 2012-06-09T21:53:17Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1578839) (merged 9ae13e12 into 6266b72d).

---------------------------------------------------------------------------

by drak at 2012-06-10T01:57:59Z

Sessions should be started implicitly. The SF auto_start config parameter controls the session listener to start the session.

---------------------------------------------------------------------------

by dlsniper at 2012-06-11T06:46:02Z

So this patch is correct then and I should continue the work on it?

---------------------------------------------------------------------------

by drak at 2012-06-11T07:51:39Z

@dlsniper - no it's not correct.  The session should not be auto-started like this, @fabpot and I recently discussed it.

---------------------------------------------------------------------------

by dlsniper at 2012-06-11T07:52:55Z

@Drak, ok I'll remove the patch for auto_start then but the fix for start would still stand, right?

---------------------------------------------------------------------------

by drak at 2012-06-12T18:40:35Z

@dlsniper - I have no objection to the rest of the PR except for the autostart stuff.  I've annotated for clarity :)

---------------------------------------------------------------------------

by travisbot at 2012-06-12T19:51:12Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1604158) (merged 3499980e into 37550d23).

---------------------------------------------------------------------------

by travisbot at 2012-06-12T19:52:00Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1604166) (merged dcc73071 into 37550d23).

---------------------------------------------------------------------------

by dlsniper at 2012-06-12T19:56:51Z

Seems Travis doesn't like the squashing of commits that I've did but the PR does pass the normal tests.
@drak is this good for merging now?

Thanks :)

---------------------------------------------------------------------------

by dlsniper at 2012-06-13T09:05:09Z

@fabpot this can be merged safely, I've just applied the patch on my production application and the patch is ok, it's just travis failing.

Thanks

---------------------------------------------------------------------------

by travisbot at 2012-06-13T09:23:46Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1608735) (merged 1a6eabd2 into 37550d23).

---------------------------------------------------------------------------

by travisbot at 2012-06-13T09:28:26Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1608758) (merged 4e3a93c8 into 37550d23).

---------------------------------------------------------------------------

by dlsniper at 2012-06-13T09:29:28Z

I've noticed that this is failing, I'll fix it later on today.

---------------------------------------------------------------------------

by travisbot at 2012-06-13T15:14:01Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1611541) (merged 5504c4b7 into 37550d23).

---------------------------------------------------------------------------

by drak at 2012-06-13T15:23:47Z

It's possible that other tests are failing not related to this PR. Run the tests on the current master, and try rebasing your branch to the current master also.

---------------------------------------------------------------------------

by dlsniper at 2012-06-13T15:44:22Z

I've just reminded why this is failing on builds, I can't do them locally because of this:
```
Installing dev dependencies
Your requirements could not be solved to an installable set of packages.

        Problems:
                - Problem caused by:
                        - Installation request for doctrine/orm [>= 2.2.0.0, < 2.4.0.0-dev]: Satisfiable by [doctrine/orm-2.2.2, doctrine/orm-2.2.1, doctrine/orm-2.2.0, doctrine/orm-2.2.x-dev, doctrine/orm-2.3.x-dev].
```

I'll try and install this somehow and see what's wrong with it.

---------------------------------------------------------------------------

by mvrhov at 2012-06-13T18:08:58Z

@dlsniper: as @stof said to me this should be resolved in latest versions of composer, but it seems that is not. The problem is that composer cannot figure out that you are on dev-master if you try to instal dev. dependencies on feature branch. Take a look at the .travis.yml file on how to do a proper dev vendors install.
cc @Seldaek

---------------------------------------------------------------------------

by dlsniper at 2012-06-13T23:08:53Z

@mvrhov Thanks for pointing this out.

@drak I still got two tests not passing but I'm not sure how to fix them as adding $session->start() will either fail with the message that the session has already been started, the headers_sent() call which returns true. Any help with them will be greatly appreciated. Thanks!

Here is what the HttpKernel tests are returning:
```
There were 2 failures:

1) Symfony\Component\HttpKernel\Tests\EventListener\LocaleListenerTest::testDefaultLocaleWithSession
Failed asserting that two strings are equal.
--- Expected
+++ Actual
@@ @@
-'es'
+'fr'

/var/www/symfony-orig/src/Symfony/Component/HttpKernel/Tests/EventListener/LocaleListenerTest.php:51

2) Symfony\Component\HttpKernel\Tests\EventListener\LocaleListenerTest::testLocaleFromRequestAttribute
Expectation failed for method name is equal to <string:set> when invoked 1 time(s).
Method was expected to be called 1 times, actually called 0 times.

FAILURES!
Tests: 263, Assertions: 1025, Failures: 2, Skipped: 10.
```

---------------------------------------------------------------------------

by travisbot at 2012-06-13T23:42:59Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1614883) (merged 1004b7c0 into c07e9163).

---------------------------------------------------------------------------

by travisbot at 2012-06-13T23:53:06Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1614897) (merged f72ba0a2 into c07e9163).

---------------------------------------------------------------------------

by dlsniper at 2012-06-16T20:14:41Z

@stof / @vicb Hi, do either of you think that you can either point me out to the right direction for fixing this either ping someone else for home help as @drak doesn't seem available for this and at the moment I'm pretty much clueless in what direction I should take this fix.

Thanks!

---------------------------------------------------------------------------

by dlsniper at 2012-06-19T14:16:29Z

ping @fabpot Can you please provide some input on this one as I'm a bit stuck and seems noone else is available.

---------------------------------------------------------------------------

by drak at 2012-06-20T10:24:43Z

fyi - I'll be able to look again in a few days

---------------------------------------------------------------------------

by fabpot at 2012-07-01T07:53:28Z

I'm +1 to add the `isStarted()` method, but -1 for the change of `Request::hasSession`.

---------------------------------------------------------------------------

by drak at 2012-07-01T09:06:15Z

@fabpot, I agree. `hasSession()` should not be changed, it's semantically incorrect to make it return effectively "hasActiveSession".
2012-07-01 23:20:45 +02:00
Drak
19eeac88ca [HttpFoundation] Removed erroneous reliance on session.auto_start 2012-06-29 18:05:14 +01:00
Drak
dcac5d7fd6 [HttpFoundation] Corrected docblocks and properties. 2012-06-29 18:04:40 +01:00
Fabien Potencier
a725f023c1 fixed typo 2012-06-29 00:35:09 +02:00
Fabien Potencier
e0351c93df merged branch fabpot/request-methods (PR #4679)
Commits
-------

df8d94e added Request::getSchemeAndHttpHost() and Request::getUserInfo() (closes #4312, refs #3416, refs #3056)

Discussion
----------

added Request::getSchemeAndHttpHost() and Request::getUserInfo()

see #4312

---------------------------------------------------------------------------

by travisbot at 2012-06-28T15:22:03Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1730172) (merged 598bd56f into 0d275701).

---------------------------------------------------------------------------

by Seldaek at 2012-06-28T15:22:35Z

Why not just `getSchemeAndHost`? That sounds long enough, and is fairly explicit given the context.

---------------------------------------------------------------------------

by fabpot at 2012-06-28T15:25:34Z

@Seldaek because (and that's probably unfortunate) we have both `getHost()` and `getHttpHost()`. The former does not include the port whereas the latter does.

---------------------------------------------------------------------------

by Seldaek at 2012-06-28T15:26:42Z

Ok makes sense.

---------------------------------------------------------------------------

by travisbot at 2012-06-28T16:11:16Z

This pull request [fails](http://travis-ci.org/symfony/symfony/builds/1730630) (merged df8d94e3 into 884a8264).
2012-06-28 19:05:50 +02:00
Fabien Potencier
df8d94e33c added Request::getSchemeAndHttpHost() and Request::getUserInfo() (closes #4312, refs #3416, refs #3056) 2012-06-28 17:56:04 +02:00
Fabien Potencier
884a8264b3 fixed CS 2012-06-28 17:48:35 +02:00
Fabien Potencier
9fb567dc43 merged branch stealth35/populate_files (PR #2892)
Commits
-------

b217897 [HttpFoundation] Complete Request::overrideGlobals

Discussion
----------

[2.2][HttpFoundation] complete Request::overrideGlobals

Bug fix: yes
Feature addition: yes
Backwards compatibility break: yes
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/stealth35/symfony.png?branch=populate_files)](http://travis-ci.org/stealth35/symfony)Fixes the following tickets: -
Todo: -

---------------------------------------------------------------------------

by stealth35 at 2011-12-15T14:20:36Z

Thank guys, should be better now

---------------------------------------------------------------------------

by stealth35 at 2011-12-15T16:14:40Z

@stloyd ✌️

---------------------------------------------------------------------------

by stloyd at 2011-12-15T16:22:48Z

@stealth35 You should update also [`RequestTest`](https://github.com/symfony/symfony/blob/master/tests/Symfony/Tests/Component/HttpFoundation/RequestTest.php#L623) which would show you typos you have few mins ago ;-)

---------------------------------------------------------------------------

by stealth35 at 2011-12-15T16:57:16Z

@stloyd done, thanks for your review

---------------------------------------------------------------------------

by canni at 2011-12-15T20:27:28Z

As this is bugfix, this shouldn't be re-based against 2.0?

---------------------------------------------------------------------------

by stealth35 at 2011-12-15T20:50:05Z

@canni It's more a forget feature, I tagged it to bug fix because of the `FIXME`, and it's add a method, IMO there is no rush

---------------------------------------------------------------------------

by canni at 2011-12-15T20:55:28Z

@stealth35 no rush at all, I was just curious :)

---------------------------------------------------------------------------

by vicb at 2012-01-06T16:24:31Z

I would say "Backwards compatibility break: yes" i.e.tests have been modified.

---------------------------------------------------------------------------

by stealth35 at 2012-01-06T16:36:15Z

@vicb the tests are not modified, just some addition

---------------------------------------------------------------------------

by vicb at 2012-01-06T16:40:30Z

@stealth35 https://github.com/symfony/symfony/pull/2892/files#L2R46

---------------------------------------------------------------------------

by stealth35 at 2012-01-06T17:13:07Z

@vicb it's not a compatibility break ...

---------------------------------------------------------------------------

by vicb at 2012-01-06T17:19:35Z

Well, same inputs, different outputs, this is a compatibility break to me.
But however it is named we should not change the behavior of this class; Client values are values as passed by the client you should no try to guess them.

---------------------------------------------------------------------------

by stealth35 at 2012-01-06T17:32:41Z

@vicb the behavior ? when you change the GET or POST values with `HttpFoundation\*Bag` (replace/set) it's the same thing

---------------------------------------------------------------------------

by vicb at 2012-01-06T17:35:39Z

I am referring to the difference in behavior between the current implementation and the version in this PR.
They do not behave the same and that's why the tests have been modified.

---------------------------------------------------------------------------

by fabpot at 2012-02-14T23:33:42Z

any progress on this PR?

---------------------------------------------------------------------------

by vicb at 2012-02-15T07:48:34Z

To make it clear I strongly disagree with the modifs in this PR. Available to help if needed.

---------------------------------------------------------------------------

by stealth35 at 2012-02-15T09:24:50Z

@fabpot Well, `move_uploaded_file` will not work so I have some doubt about this, @vicb just don't like the fact to add the mime type type and the size, it's not an important thing, I can remove it we can discuss later about that,

@vicb the last thing to do, it's to recreate the weird php $_FILES array

---------------------------------------------------------------------------

by vicb at 2012-02-23T17:11:29Z

@stealth35 I don't think we can bypass the `move_uploaded_file` security check - which is good. Is there any interest in this PR w/o this ?

If no we should just update phpDoc comment and remove the FIXME (meaning we can not override the `$_FILES`).

---------------------------------------------------------------------------

by stealth35 at 2012-03-10T16:13:14Z

@vicb updated

---------------------------------------------------------------------------

by vicb at 2012-03-11T09:38:20Z

@stealth35 what about adding some unit tests ?

---------------------------------------------------------------------------

by stealth35 at 2012-03-11T11:06:44Z

> what about adding some unit tests ?

@vicb `request_order` is PHP_INI_PERDIR, so I don't really how to handle this

---------------------------------------------------------------------------

by vicb at 2012-03-11T11:15:55Z

by creating a `protected getRequestOrder()` method or something like this ?

---------------------------------------------------------------------------

by stealth35 at 2012-03-11T11:36:11Z

it's too bad to create a method just for this, I can make cond in the test

``` php
<?php
$request->initialize(array('get' => 'foo'), array('post' => 'bar'));
$request->overrideGlobals();

$request_order = ini_get('request_order');

if ('gp' === $request_order) {
    $this->assertEquals(array('get' => 'foo', 'post' => 'bar'), $_REQUEST);
} else if ('pg' === $request_order) {
    $this->assertEquals(array('post' => 'bar', 'get' => 'foo'), $_REQUEST);
}
// ...
```

---------------------------------------------------------------------------

by vicb at 2012-03-11T12:02:17Z

This would only test one case.

Some thoughts about your snippet:

* The init should probably be `$request->initialize(array('foo' => 'get'), array('foo' => 'post'));`,
* `$request_order` does not take into account `variables_order.ini`,
* missing `strtolower`

---------------------------------------------------------------------------

by fabpot at 2012-03-23T21:21:59Z

What's the status of this PR? What needs to be done before merging?

---------------------------------------------------------------------------

by stealth35 at 2012-03-24T18:33:42Z

@fabpot missing some tests, it's not essay to tests an `ini`directive, @vicb recommand a `getRequestOrder` method, it's not a bad idea

---------------------------------------------------------------------------

by vicb at 2012-03-24T20:06:53Z

and change `$request_order` to `$requestOrder` as suggested by @henrikbjorn I can't find where

---------------------------------------------------------------------------

by stealth35 at 2012-06-14T12:42:25Z

I need help for testing

``` php
<?php
$request = $this->getMock('Request', array('overrideGlobals', 'initialize'));

$request->expects($this->any())
        ->method('getRequestOrder')
        ->will($this->returnValue('gp'));

$request->initialize(array('foo' => 'fooget'), array('foo' => 'foopost'));
$request->overrideGlobals();

$this->assertEquals(array_merge($_GET, $_POST), $_REQUEST);
```
2012-06-28 17:48:02 +02:00
Fabien Potencier
5a8e20643e merged branch adrienbrault/http-foundation-fixes (PR #4483)
Commits
-------

9a74b85 [HttpFoundation] CS and phpdoc fixes

Discussion
----------

[HttpFoundation] CS and phpdoc fixes

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -

Hey

---------------------------------------------------------------------------

by travisbot at 2012-06-02T00:30:49Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1504379) (merged 2f0117f2 into 1541fe26).

---------------------------------------------------------------------------

by fabpot at 2012-06-25T14:53:18Z

@adrienbrault Can you have a look at my comments?

---------------------------------------------------------------------------

by adrienbrault at 2012-06-25T16:24:49Z

Done! Sorry for the delay

---------------------------------------------------------------------------

by travisbot at 2012-06-25T17:50:24Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1702850) (merged 9a74b851 into 58436de1).
2012-06-25 22:29:10 +02:00
Adrien BRAULT
9a74b851e6 [HttpFoundation] CS and phpdoc fixes 2012-06-25 18:21:41 +02:00
Fabien Potencier
55c6df995f merged 2.0 2012-06-20 21:33:33 +02:00
Florin Patan
f72ba0a27d Fixed detection of an active session 2012-06-14 01:48:01 +03:00
Fabien Potencier
0f67ca88c1 [HttpFoundation] fixed StreamedResponse with HEAD as a method (closes #4502) 2012-06-13 16:21:50 +02:00
Fabien Potencier
6efc00d39d merged branch kriswallsmith/head-streamed-response-err (PR #4502)
Commits
-------

280fc05 failing test for HEAD StreamedResponse requests

Discussion
----------

[WIP] failing test for HEAD StreamedResponse requests

An exception is thrown if you prepare a StreamedResponse with a HEAD request. I'm not sure what the right fix is…

---------------------------------------------------------------------------

by kriswallsmith at 2012-06-06T15:51:04Z

The Travis build is here: http://travis-ci.org/#!/symfony/symfony/builds/1543352

---------------------------------------------------------------------------

by sstok at 2012-06-08T11:07:31Z

Well a HEAD can't/shouldn't be streamed as it doesn't contain a body so what is the real problem here?

---------------------------------------------------------------------------

by kriswallsmith at 2012-06-08T16:14:18Z

@sstok the response is prepared by the ResponseListener regardless of request method

---------------------------------------------------------------------------

by adrienbrault at 2012-06-08T19:41:27Z

Shouldn't the test at least assert something ?
2012-06-13 16:17:27 +02:00
Fabien Potencier
6e524e2863 merged branch jalliot/patch-4 (PR #4544)
Commits
-------

5d55726 [HttpFoundation] Added 308 as a valid redirect code

Discussion
----------

[HttpFoundation] Added 308 as a valid redirect code

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [![Build Status](https://secure.travis-ci.org/jalliot/symfony.png?branch=patch-4)](http://travis-ci.org/jalliot/symfony)
Fixes the following tickets: -
Todo: -

I think this should go on 2.0 but error code 308 has only been added in master...

---------------------------------------------------------------------------

by lyrixx at 2012-06-09T22:56:32Z

👍

---------------------------------------------------------------------------

by travisbot at 2012-06-10T06:27:18Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1579937) (merged 5d557261 into 6266b72d).
2012-06-12 19:54:09 +02:00
Fabien Potencier
66ff06096c fixed an issue with session mocking in functional tests that do not start with a fresh session instance for each request (Silex for instance) 2012-06-12 10:24:12 +02:00
Fabien Potencier
171eecf679 [HttpFoundation] removed unused variable 2012-06-12 10:01:41 +02:00
Miha Vrhovnik
5d88255d4e Authorization header should only be rebuild when Basic Auth scheme is used 2012-06-12 08:10:53 +02:00
Jordan Alliot
5d55726183 [HttpFoundation] Added 308 as a valid redirect code 2012-06-10 01:20:06 +03:00
Fabien Potencier
b84b46ba1a [HttpFoundation] added some unit tests (refs #4510) 2012-06-08 16:22:49 +02:00
Niklas Fiekas
5c2fbfabf6 [HttpFoundation] Make JsonResponse HTML safe. 2012-06-07 17:39:19 +02:00
Kris Wallsmith
280fc0578a failing test for HEAD StreamedResponse requests 2012-06-05 22:28:15 -07:00
Neil Ferreira
85db22130e Since getClientIp() no longer takes a parameter, removed that old test
Added a new test for HTTP_X_FORWARDED_FOR that starts with 'unknown, '
2012-05-31 19:32:31 +08:00
Neil Ferreira
7b5328f1c7 getClientIp() will now only return valid IP addresses, rather than assuming the X_FORWARDED_FOR is the first comma seperated value. 2012-05-31 17:15:39 +08:00
Fabien Potencier
0e98d33ee0 merged branch drak/natives (PR #4454)
Commits
-------

3c8cc0a [HttpFoundation][Sessions] Refactored tests
13a2c82 [FrameworkBundle] Refactor session file handler service name and update changelogs
b2cc580 [HttpFoundation] Removed Native*Handler session save handler classes
f33b77c [HttpFoundation] Added a custom file save handler

Discussion
----------

[HttpFoundation][Sessions] Removed native save handlers

Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -

Added a specific filesessionhandler
Removed native handlers to slim down code.

---------------------------------------------------------------------------

by travisbot at 2012-05-30T02:54:40Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1473181) (merged 3c8cc0a1 into adf07f1e).
2012-05-30 07:57:13 +02:00
Fabien Potencier
44f615595a merged branch drak/cleanup (PR #4433)
Commits
-------

d046fed [HttpFoundation] Remove temporary files after tests run

Discussion
----------

[HttpFoundation] Remove temporary files after tests run

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: [yes|no]
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -

---------------------------------------------------------------------------

by travisbot at 2012-05-28T00:26:30Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1451809) (merged 30082e97 into adf07f1e).

---------------------------------------------------------------------------

by travisbot at 2012-05-28T06:59:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1453569) (merged d046fede into adf07f1e).
2012-05-30 07:13:13 +02:00
Drak
d046fedefb [HttpFoundation] Remove temporary files after tests run 2012-05-28 12:39:57 +05:45
Drak
3c8cc0a1a0 [HttpFoundation][Sessions] Refactored tests 2012-05-28 06:12:06 +05:45
Drak
13a2c82f01 [FrameworkBundle] Refactor session file handler service name and update changelogs 2012-05-28 06:09:36 +05:45
Drak
b2cc580be7 [HttpFoundation] Removed Native*Handler session save handler classes 2012-05-28 06:09:31 +05:45
Drak
f33b77c23e [HttpFoundation] Added a custom file save handler 2012-05-28 06:09:26 +05:45
Bernhard Schussek
90516223ab Fixing email 2012-05-26 09:48:33 +02:00
Even André Fiskvik
0935964b29 Modified example for mod_rewrite to not add Authorization header if it is not set in the request 2012-05-22 14:38:37 +02:00
Fabien Potencier
3ab88f23b9 merged branch aripringle/master (PR #4333)
Commits
-------

4fa8e68 Add support for javascript object notation in allowed JSONP callback

Discussion
----------

Add support for javascript object notation in allowed JSONP callback

---------------------------------------------------------------------------

by travisbot at 2012-05-18T23:09:45Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1371497) (merged 4fa8e68c into 18132c18).
2012-05-22 11:56:42 +02:00
Fabien Potencier
335d4eab86 fixed CS 2012-05-21 22:27:15 +02:00
Fabien Potencier
aa3e1a3b8c merged 2.0 2012-05-21 16:05:28 +02:00
Victor Berchet
82236324b5 [HttpFoundation] Fix the UploadedFilename name sanitization (fix #2577) 2012-05-21 15:52:36 +02:00
Fabien Potencier
87bb3661fc merged branch kepten/ticket_1813 (PR #3551)
Commits
-------

a450d00 [HttpFoundation] HTTP Basic authentication is broken with PHP as cgi/fastCGI under Apache

Discussion
----------

[HttpFoundation] HTTP Basic authentication is broken with php-cgi under Apache

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #1813
Todo: -

In order to work, add this to the .htaccess:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

---------------------------------------------------------------------------

by stof at 2012-03-10T17:34:26Z

you should also add a unit test for this

---------------------------------------------------------------------------

by kepten at 2012-03-11T15:34:04Z

Thanks for the feedback, I committed the changes.

---------------------------------------------------------------------------

by stof at 2012-04-04T01:59:53Z

@fabpot could you review it ?

---------------------------------------------------------------------------

by fabpot at 2012-04-04T07:15:34Z

My comments:

 * `ServerBag` represents what we have in the `$_SERVER` global variables. As such, the code should be moved to the `getHeaders()` method instead like the other tweaks we do for the HTTP headers.

 * A comment must be added explaining why this is needed and the configuration the user must have to make it work (then remove the Github URLs).

 * The code should only be executed when `PHP_AUTH_USER` is not available (to not have any overhead when not needed).

---------------------------------------------------------------------------

by danielholmes at 2012-04-14T13:27:09Z

A quick note on that .htaccess/apache configuration required, if adding to the Symfony SE htaccess file, then it will need to look like this:

```
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
```

NOTE: No **,L** in the Authorization Rewrite as in the original example - it prevents the front controller rewrite from happening

---------------------------------------------------------------------------

by towards at 2012-04-20T16:12:49Z

@kepten you were faster than me applying @fabpot's comments :) nevertheless part of the bug hunt day I also modified the ServerBag class and tested them on a productive LAMP hosting server using Apache and FastCGI

---------------------------------------------------------------------------

by kepten at 2012-04-20T16:15:57Z

ok, so is my PR is useless or should I still fix problems?

---------------------------------------------------------------------------

by towards at 2012-04-20T16:20:26Z

your PR is fine for sure and I don't want to interfere, just wanted to mention that part of the bug hunt day of Symfony I had a go at this PR as an "exercise" but just saw later on that you already fixed the problem, so you can ignore my pushes

---------------------------------------------------------------------------

by vicb at 2012-04-20T16:20:36Z

I have been working with @towards: your PR is useful, please implement his comments and squash your PR.

---------------------------------------------------------------------------

by kepten at 2012-04-20T16:59:07Z

never squashed before, is it okay now? :)

---------------------------------------------------------------------------

by stof at 2012-04-20T17:21:07Z

it is

---------------------------------------------------------------------------

by vicb at 2012-05-20T19:57:51Z

@fabpot this should be ready to be merged
2012-05-21 11:09:36 +02:00
Fabien Potencier
9b7aab5e94 merged 2.0 2012-05-20 18:16:37 +02:00
aripringle
4fa8e68cdc Add support for javascript object notation in allowed JSONP callback 2012-05-18 17:03:28 -06:00
Fabien Potencier
3bdf52a16a fixed CS 2012-05-18 19:42:42 +02:00
Fabien Potencier
e173d79e34 fixed CS 2012-05-18 19:37:58 +02:00
Fabien Potencier
ec36ae7eda merged 2.0 2012-05-18 19:04:58 +02:00
Fabien Potencier
980a062092 merged branch ouardisoft/2.0 (PR #4300)
Commits
-------

d1c831d Change must-proxy-revalidate by proxy-revalidate

Discussion
----------

Change must-proxy-revalidate by proxy-revalidate

---------------------------------------------------------------------------

by travisbot at 2012-05-16T09:20:54Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1344060) (merged d1c831d7 into 8cd6cbcf).
2012-05-16 11:25:06 +02:00
ouardisoft
d1c831d7b2 Change must-proxy-revalidate by proxy-revalidate 2012-05-16 09:17:19 +00:00
Fabien Potencier
41621e42e9 fixed phpdoc @param alignment 2012-05-15 22:19:31 +02:00
Fabien Potencier
ce9791246b fixed phpdoc @param alignment 2012-05-15 18:56:32 +02:00
Fabien Potencier
982c369f37 added @ to all chmod() calls to avoid PHP warnings (operation not permitted) when using CIFS or NTFSa (closes #2125) 2012-05-15 08:44:52 +02:00
Victor Berchet
51b753a6b8 [Session] cleanup of the PDO storage 2012-05-10 12:33:43 +02:00
Fabien Potencier
bed0b90bea merged branch vicb/session_pdo_storage (PR #4244)
Commits
-------

b865b09 [Session] Fix the PDO handler for mysql concurrent write

Discussion
----------

[RFC][Session] Make the PDO handler looks less hacky

Related discussion: ebc2f01e5b (commitcomment-1304221)

The current code works but looks hacky (`$dbTimeCol = CASE WHEN $dbTimeCol = :time THEN (VALUES($dbTimeCol) + 1) ELSE VALUES($dbTimeCol) END`).

Todo: wrap the mysql specific code in a `try...catch` if we choose this PR way (to be consistent with all other PDO invocations).

---------------------------------------------------------------------------

by travisbot at 2012-05-10T07:50:39Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1293131) (merged b865b096 into 48099a85).
2012-05-10 11:48:38 +02:00
Victor Berchet
12e22c0d1f [Session] Memcache/d cleanup, test improvements 2012-05-10 09:28:59 +02:00
Victor Berchet
b865b096b5 [Session] Fix the PDO handler for mysql concurrent write 2012-05-09 10:13:10 +02:00
Victor Berchet
788adfb6c0 [Session] Pdo Handler cleanup 2012-05-08 11:30:40 +02:00
Victor Berchet
0216e05605 [HttpFoundation][Session] Assume that memcache(d) instances are already configured 2012-05-08 11:20:17 +02:00
Victor Berchet
72d21c6614 [HttpFoundation][Session] change possible replace() & set() for set only() 2012-05-08 10:05:47 +02:00
Douglas Greenshields
8ff11c1ad3 [HttpFoundation] fixed docblock typos in session class 2012-05-07 15:20:20 +01:00
Fabien Potencier
3719c70870 updated minimum PHP version to 5.3.3
5.3.3 has some interesting fixes and this is the version used by
Redhat 6 and Debian 6
2012-05-07 10:29:11 +02:00
Fabien Potencier
f273edc176 [HttpFoundation] added missing RFC reference 2012-05-05 10:20:38 +02:00
Fabien Potencier
503a51fa29 [HttpFoundation] updated RFC references in Response 2012-05-05 08:22:03 +02:00
Fabien Potencier
5bed5f3c2c merged branch willdurand/fix-components (PR #4155)
Commits
-------

c195957 [Components] Tests/Autoloading fixes

Discussion
----------

Fix components

See #4141

----
This PR:

* configures each component to use composer to manage "dev" dependencies instead of env variables;
* adds phpunit configuration file on Filesystem component;
* fixes READMEs.

It's mergeable without any problems, but I would recommend to wait a fix in Composer in order to use `self.version` in `require`/`require-dev` sections.

Note: I kept `suggest` sections because it makes sense but this PR doesn't aim to provide useful explanations for each entry. It could be another PR, not that one.

---------------------------------------------------------------------------

by willdurand at 2012-04-30T20:43:13Z

@fabpot I reviewed each component, one by one. Now `phpunit` always works, even if tests are skipped. A simple `composer install --dev` allows to run the complete test suite. Each commit is well separated from the others. I guess, everything is ok now.

---------------------------------------------------------------------------

by Tobion at 2012-04-30T20:47:00Z

Please squash, as it makes no sense to have the same commit for each component.

---------------------------------------------------------------------------

by fabpot at 2012-05-01T14:26:11Z

Can you squash your commits before I merge? Thanks.

---------------------------------------------------------------------------

by willdurand at 2012-05-01T14:29:38Z

done

---------------------------------------------------------------------------

by fabpot at 2012-05-01T15:48:25Z

It does not seem that the commits are squashed.

---------------------------------------------------------------------------

by willdurand at 2012-05-01T15:54:08Z

done
2012-05-01 17:59:34 +02:00
William DURAND
c1959571ac [Components] Tests/Autoloading fixes
* Switched to Composer to manage "dev" dependencies
* Fixed READMEs
* Excluded vendor in phpunit.xml.dist files
* Fixed message in bootstrap.php files
* Added autoloader for the component itself
2012-05-01 17:51:41 +02:00
Fabien Potencier
462ddfced9 merged branch pulzarraider/httpfoundation_changelog_fix (PR #4169)
Commits
-------

ea3f8c5 [HttpFoundation] added native Redis session handler to CHANGELOG

Discussion
----------

[HttpFoundation] Added native Redis session handler to CHANGELOG

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
2012-05-01 16:21:36 +02:00
Fabien Potencier
26f933e7bd fixed CS 2012-05-01 15:23:48 +02:00
Andrej Hudec
ea3f8c53f9 [HttpFoundation] added native Redis session handler to CHANGELOG 2012-05-01 08:53:36 +02:00
Ismael Ambrosi
7dfd410481 Fixes typos 2012-04-28 00:51:32 -03:00
Fabien Potencier
9fbf8555f0 Revert "merged branch Seldaek/master (PR #4133)"
This reverts commit 00e7a94a8c, reversing
changes made to a01dec00f4.
2012-04-27 19:55:40 +02:00
Jordi Boggiano
00c4267726 Update branch aliases 2012-04-27 12:47:50 +02:00
Fabien Potencier
a389345d0c [HttpFoundation] added CHANGELOG 2012-04-26 21:53:50 +02:00
Fabien Potencier
3a6ec029c7 merged branch willdurand/fix-session-bc (PR #4114)
Commits
-------

6756f28 [Session] Fixed Backward Compatibility issue with getFlashes()

Discussion
----------

[Session] Fixed Backward Compatibility issue with getFlashes()

---------------------------------------------------------------------------

by fabpot at 2012-04-25T22:35:42Z

ping @drak

---------------------------------------------------------------------------

by willdurand at 2012-04-25T22:37:01Z

By the way, I had this issue on a real application I upgraded from Symfony2 2.0.x to 2.1 (and written by @Seldaek)

The code looks like:

``` php
<?php
// in a controller

$this->session->setFlash('foo', array(
    'code' => 'success',
    'message' => 'lalala',
    'params' => array())
);
```

---------------------------------------------------------------------------

by Seldaek at 2012-04-26T07:25:03Z

Yup, to be fair in retrospective maybe that should have been translated in the controller directly (that's why it had message + params as an array), but this is code that predates 2.0 by at least six months, so it was obviously not clear what best practices were. Anyway it seems it can be fixed without much harm, so for the sake of safety and because I may not be the only crazy person having done this, it'd be good to fix IMO.
2012-04-26 10:18:31 +02:00
William DURAND
6756f2819d [Session] Fixed Backward Compatibility issue with getFlashes() 2012-04-25 19:34:10 +02:00
Fabien Potencier
76ef8da030 merged 2.0 2012-04-25 12:18:06 +02:00
Christian Raue
f287f0804d removed superfluous public modifier from interface methods 2012-04-24 19:15:04 +02:00
Tobias Schultze
58b2b2da54 fix fatal error when mongo not available 2012-04-23 14:17:34 +02:00
Fabien Potencier
d5c5d7667d merged branch Baachi/mongo-session-storage (PR #4013)
Commits
-------

40df3bf Add mongodb session storage

Discussion
----------

[HttpFoundation][Session] Add mongodb session storage

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -

---------------------------------------------------------------------------

by Baachi at 2012-04-19T19:05:19Z

Review please :)

---------------------------------------------------------------------------

by Baachi at 2012-04-19T19:49:42Z

@stof Can be merged?

---------------------------------------------------------------------------

by stof at 2012-04-19T19:51:28Z

I'm not a Mongo expert but it seems fine. You simply need to wait @fabpot's final review now

---------------------------------------------------------------------------

by Baachi at 2012-04-19T19:52:53Z

Okay, thanks :)

---------------------------------------------------------------------------

by Baachi at 2012-04-20T06:21:52Z

@vicb Sorry, for the email flood :)

I implemented all your suggestions.

---------------------------------------------------------------------------

by fabpot at 2012-04-22T08:27:19Z

@drak, @vicb: Is it ok now?

---------------------------------------------------------------------------

by vicb at 2012-04-22T08:33:31Z

I am ok with this PR
2012-04-23 12:27:25 +02:00
Hugo Hamon
6dddb6b850 [HttpFoundation] removed useless else clause in Request::getPort() method. 2012-04-21 13:27:44 +02:00
Jordan Alliot
e509e6ffd1 Skip PDOSessionHandlerTest if PDO SQLite is not available 2012-04-21 12:28:57 +02:00
Markus Bachmann
40df3bf86f Add mongodb session storage
Some changes based on @stof and @stloyd suggestions

Some changes based on @vicb suggestions

Some changes based on @vicb suggestions

Add changes
2012-04-20 19:19:55 +02:00
kepten
a450d002f2 [HttpFoundation] HTTP Basic authentication is broken with PHP as cgi/fastCGI under Apache
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #1813
Todo: -

In order to work, add this to the .htaccess:

RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
2012-04-20 18:39:29 +02:00
Fabien Potencier
539634cbaa merged 2.0 2012-04-20 12:18:51 +02:00
Victor Berchet
e0e451feb8 Fix umasks in chmod() calls 2012-04-19 15:47:04 +02:00
Jordi Boggiano
5c059aa121 Fix chmod() calls to apply umask 2012-04-19 13:35:17 +02:00
Hugo Hamon
b19468e15b [HttpFoundation] changed return type from int to integer in ParameterBag::getInt() method. 2012-04-19 01:11:41 +02:00
Marc Abramowitz
1863b28e97 Fix typo: Resonse -> Response 2012-04-18 13:38:08 -07:00
Hugo Hamon
9cd0b03aea [HttpFoundation] fixed phpdoc in ParameterBag::getInt() method. 2012-04-18 17:30:08 +02:00
Hugo Hamon
64a0abe577 [HttpFoundation] fixed CS in ParameterBag class. 2012-04-18 17:10:56 +02:00
Till Klampaeckel
962f975a6f Use Memcache::replace() first instead of Memcache::set(): http://docs.php.net/manual/en/memcache.replace.php#100023 2012-04-18 12:17:02 +02:00
Larry Garfield
a0d047b06f Return from Response::prepare() so that the method may be chained. 2012-04-16 19:22:20 -05:00
Fabien Potencier
61bec64003 [HttpFoundation] added missing variable declaration 2012-04-11 18:56:05 +02:00
Victor Berchet
55014a6841 [Routing] Request methods always return a raw path, fix the matcher to decode only once
sq
2012-04-10 10:40:58 +02:00
Arnaud Le Blanc
d17ba0e147 Fixed base URL detection when request URI contains encoded chars
Signed-off-by: Victor Berchet <victor@suumit.com>
2012-04-10 10:15:43 +02:00
Fabien Potencier
72e854e943 fixed CS 2012-04-07 09:10:50 +02:00
Fabien Potencier
b9daae2847 merged 2.0 2012-04-06 14:21:18 +02:00
Drak
33881ddd30 [HttpFoundation] Add more tests for casing 2012-04-06 17:10:55 +05:45
Drak
aec133996e [HttpFoundation] Coding standards. 2012-04-06 07:29:37 +00:00
Drak
3dc72cdf21 Add isMethod() to Request object 2012-04-06 12:35:12 +05:45
Fabien Potencier
b9de0be349 merged branch drak/sessionmeta (PR #3718)
Commits
-------

8a0e6d2 [HttpFoundation] Update changelog.
4fc04fa [HttpFoundation] Renamed MetaBag to MetadataBag
2f03b31 [HttpFoundation] Added the ability to change the session cookie lifetime on migrate().
39141e8 [HttpFoundation] Add ability to force the lifetime (allows update of session cookie expiry-time)
ec3f88f [HttpFoundation] Add methods to interface
402254c [HttpFoundation] Changed meta-data responsibility to SessionStorageInterface
d9fd14f [HttpFoundation] Refactored for moved tests location.
29bd787 [HttpFoundation] Added some basic meta-data to Session

Discussion
----------

[2.1][HttpFoundation] Added some basic meta-data to Session

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
References the following tickets: #2171
Todo: -

Session data is stored as an encoded string against a single id.  If we want to store meta-data about the session, that data has to be stored as part of the session data to ensure the meta-data can persist using any session save handler.

This patch makes it much easier to determine the logic of session expiration.  In general a session expiry can be dealt with by the gc handlers, however, in some applications more specific expiry rules might be required.

Session expiry may also be more complex than a simple, session was idle for x seconds.  For example, in Zikula there are three security settings, Low, Medium and High.  The rules for session expiry are more complex as under the Medium setting, a session will expire after x minutes idle time, unless the rememberme option was ticked on login.  If so, the session will not idle.  This gives the user some control over their experience.  Under the high security setting, then there is no option, sessions will expire after the idle time is reached and login the UI has the rememberme checkbox removed.

The other advantage is that under this methodology, there can be a UI experience on expiry, like "Sorry, your session expired due to being idle for 10 minutes".

Keeping in the spirit of Symfony2 Components, I am seeking to make session handling flexible enough to accommodate these general requirements without specifically covering expiration rules. It would mean that it would be up to the implementing application to specifcally check and expire session after starting it.

Expiration might look something like this:

    $session->start();
    if (time() - $session->getMetadataBag()->getLastUpdate() > $maxIdleTime) {
        $session->invalidate();
        throw new SessionExpired();
    }

This commit also brings the ability to change the `cookie_lifetime` when migrating a session. This means one could move from a default of browser only session cookie to long-lived cookie when changing from a anonymous to a logged in user for example.

    $session->migrate($destroy, $lifetime);

---------------------------------------------------------------------------

by drak at 2012-03-30T18:18:43Z

@fabpot I have removed [WIP] status.

---------------------------------------------------------------------------

by drak at 2012-03-31T13:34:57Z

NB: This PR has been rebased and the tests relocated as per recent master changes.

---------------------------------------------------------------------------

by drak at 2012-04-03T02:16:43Z

@fabpot - ping
2012-04-03 11:40:07 +02:00
Eriksen Costa
2cac50d8a9 fixed CS (missing or misplaced license blocks) 2012-04-02 00:52:14 -03:00
Drak
4fc04fae18 [HttpFoundation] Renamed MetaBag to MetadataBag 2012-03-31 22:36:52 +05:45