[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]
Be more specific in phpdoc (Fixes #3216)
merged branch aderuwe/issue-3216 (PR #4304)

Commits
-------

6341de0 Be more specific in phpdoc (Fixes #3216)

Discussion
----------

Modify TwigEngine.php's signature (#3216)

This fixes the "line-ending issues" in TwigEngine.php responsible for connection reset errors on windows (which do still occur on 2.0.13, when ```core.autocrlf``` is set to GitHub's recommendation rather than Symfony's), caused by factors out of Symfony's control.

I acknowledge the comments on the above issue, but it seems this is trivial to do and it will save a bunch of time for people who find themselves in this situation.

Bug fix: [no]
Feature addition: [no]
Backwards compatibility break: [no]
Symfony2 tests pass: phpdoc changes
Fixes the following tickets: [#3216]
License of the code: MIT

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

by travisbot at 2012-05-16T19:35:55Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1348808) (merged 6341de02 into 980a0620).
updated CHANGELOG for 2.0.14
update CONTRIBUTORS for 2.0.14
updated VERSION for 2.0.14
Fixed the proxy autoloading for Doctrine 2.2
Fixed the composer constraint for Doctrine Common
merged branch stof/common_deps (PR #4318)

Commits
-------

d1f0c25 Fixed the composer constraint for Doctrine Common

Discussion
----------

Common deps

This allows using Doctrine 2.2 when using the full repo as it is compatible. The workaround previously was to use the individual components as the deps was less strict in them.

Closes #4289

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

by travisbot at 2012-05-17T22:36:03Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1361187) (merged d1f0c254 into b3799680).
merged branch stof/doctrine_autoloading (PR #4317)

Commits
-------

fff7221 Fixed the proxy autoloading for Doctrine 2.2

Discussion
----------

Doctrine autoloading

This fixes the autoloading of proxies for Doctrine 2.2

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

by travisbot at 2012-05-17T22:36:11Z

This pull request [passes](http://travis-ci.org/symfony/symfony/builds/1361173) (merged fff72217 into b3799680).
bumped Symfony version to 2.0.15-DEV
[Form] fixed invalid 'type' option in ValidatorTypeGuesser for Date/TimeFields

Field type guessing breaks, if you use any of the Date/Time
constraints, since these field types have no 'type' default option
defined.
TypeGuess fixed for Date/Time constraints
added missing LICENSE files
fixed CS
fixed CS
removed empty files
removed unused use statements
fixed CS
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