Commit Graph

75 Commits

Author SHA1 Message Date
Roman Marintšenko
aef78f26a3 [HttpFoundation] Improve test coverage 2013-08-28 20:56:22 +02:00
Fabien Potencier
167245c9c7 Merge branch '2.3'
* 2.3:
  [Locale] fixed build-data exit code in case of an error
  fixed request format of sub-requests when explicitely set by the developer (closes #8787)
  Sets _format attribute only if it wasn't set previously by the user.
  Exclude little words of 'ee' to 'oo' plural transformation
  fixed the format of the request used to render an exception
  Fix typo in the check_path validator
  added a missing use statement (closes #8808)
  fix for Process:isSuccessful()
  Include untrusted host in the exception message

Conflicts:
	src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php
	src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php
2013-08-22 08:44:20 +02:00
Jordi Boggiano
fd2f63382a Include untrusted host in the exception message 2013-08-21 12:06:02 +02:00
Fabien Potencier
57531d47bd Merge branch '2.3'
* 2.3:
  added trusted hosts check
2013-08-07 16:02:33 +02:00
Fabien Potencier
f8ffb80067 Merge branch '2.2' into 2.3
* 2.2:
  added trusted hosts check

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
2013-08-07 16:02:06 +02:00
Fabien Potencier
b8b972fe74 Merge branch '2.1' into 2.2
* 2.1:
  added trusted hosts check

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
	src/Symfony/Component/HttpFoundation/Request.php
2013-08-07 16:00:53 +02:00
Fabien Potencier
31f0efd7bc Merge branch '2.0' into 2.1
* 2.0:
  added trusted hosts check

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php
	src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/ConfigurationTest.php
	src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
2013-08-07 15:58:42 +02:00
Mark Sonnabaum
28a8443a5f [HttpFoundation] Added Request::getEncodings() method 2013-06-03 09:39:44 -05:00
Fabien Potencier
f43a0eef9d Merge branch '2.2'
* 2.2:
  Fix getPort() returning 80 instead of 443 when X-FORWARDED-PROTO is set to https
  [Translation] fixed a unit test

Conflicts:
	src/Symfony/Component/HttpFoundation/Request.php
2013-04-30 19:05:37 +02:00
Fabien Potencier
01ff0765b2 Merge branch '2.1' into 2.2
* 2.1:
  Fix getPort() returning 80 instead of 443 when X-FORWARDED-PROTO is set to https
2013-04-30 19:05:10 +02:00
Philipp Strube
2a531d78be Fix getPort() returning 80 instead of 443 when X-FORWARDED-PROTO is set to https 2013-04-30 19:01:33 +02:00
Fabien Potencier
2f3b33a630 merged branch guilhermeblanco/client_ip_fix (PR #7559)
This PR was squashed before being merged into the master branch (closes #7559).

Discussion
----------

[HttpFoundation] [HttpKernel] Internal sub-requests should have X-Forwarded-For header providing real client IP

This is a better alternative to fix issue highlighted in #7554 and #7557.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7554, #7557
| License       | MIT

When dealing with inline fragment renderer, it emulates an internal request by overriding the REMOTE_ADDR on Request. This is true, since conceptually request came from local server.
The problem that this introduces is that overriding the server value, it turns into an impossible state to retrieve the real client ip, only returning the local server IP (which is hardcoded to 127.0.0.1).

This patch takes the same approach as a Varnish call (it behaves the exact same way, reusing all code built for handling client ip handling on sub-requests), populating the X-Forwarded-For header and also making getClientIp smarter by removing possible local IP addresses from being considered as the client IP address.

Commits
-------

773e109 [HttpFoundation] [HttpKernel] Internal sub-requests should have X-Forwarded-For header providing real client IP
2013-04-21 09:39:54 +02:00
Guilherme Blanco
773e109ebf [HttpFoundation] [HttpKernel] Internal sub-requests should have X-Forwarded-For header providing real client IP 2013-04-21 09:39:17 +02:00
Fabien Potencier
1552a16420 Merge branch '2.2'
* 2.2:
  [Config] #7644 add tests for passing number looking attributes as strings
  [HttpFoundation][BrowserKit] fixed path when converting a cookie to a string
  [BrowserKit] removed dead code
  [HttpFoundation] fixed empty domain= in Cookie::__toString()
  fixed detection of secure cookies received over https
  [2.2] Pass ESI header to subrequests
  [Translation] removed an uneeded class property
  [Translation] removed unneeded getter/setter
  [Translator] added additional conversion for encodings other than utf-8
  fixed source messages to accept pluralized messages [Validator][translation][japanese] add messages for new validator
  fix a DI circular reference recognition bug
  [HttpFoundation] fixed the creation of sub-requests under some circumstances for IIS

Conflicts:
	src/Symfony/Component/HttpFoundation/Tests/CookieTest.php
2013-04-20 21:06:06 +02:00
Fabien Potencier
e81f7925eb Merge branch '2.1' into 2.2
* 2.1:
  [HttpFoundation][BrowserKit] fixed path when converting a cookie to a string
  [BrowserKit] removed dead code
  [HttpFoundation] fixed empty domain= in Cookie::__toString()
  fixed detection of secure cookies received over https
  [Translation] removed an uneeded class property
  [Translation] removed unneeded getter/setter
  [Translator] added additional conversion for encodings other than utf-8
  fix a DI circular reference recognition bug
  [HttpFoundation] fixed the creation of sub-requests under some circumstances for IIS
2013-04-20 21:05:29 +02:00
Fabien Potencier
169506743b [HttpFoundation] added some unit tests for ranges of trusted IP addresses 2013-04-20 17:49:57 +02:00
Fabien Potencier
75db8eb8a7 [HttpFoundation] changed the order of IP addresses returned by Request::getClientIps() 2013-04-20 17:09:51 +02:00
Fabien Potencier
deccb7651d [HttpFoundation] refactored trusted proxies tests to make them easier to understand and change 2013-04-20 17:02:44 +02:00
Fabien Potencier
1af9e5e788 [Request] removed obsolete proxy setting in tests 2013-04-20 16:44:27 +02:00
Fabien Potencier
168b8cb23e [HttpFoundation] removed obsolete request property 2013-04-20 16:38:46 +02:00
Fabien Potencier
1454af7235 merged branch bendavies/iis-rewrite-subrequests (PR #7606)
This PR was merged into the 2.1 branch.

Discussion
----------

[HttpFoundation] fixes creation of sub requests under IIS & Rewite Module

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6936, #6923
| License       | MIT
| Doc PR        | N/A

There are a few bugs to address.

1. `HTTP_X_ORIGINAL_URL` wasn't removed from the server parameters, so is picked back up [here](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/ServerBag.php#L33) upon recreation of a sub request.
2. When `X_ORIGINAL_URL` is passed in the headers by IIS, `IIS_WasUrlRewritten` and `UNENCODED_URL` can also be passed as server vars, so they must also be removed for sub request URI's to be resolved correctly.

Additionally, I have removed the OS check for windows, because it was only done for 2 out of 4 of the IIS specific checks, and it made the code untestable.

Also added tests for all scenarios as there were none.

Commits
-------

9fcd2f6 [HttpFoundation] fixed the creation of sub-requests under some circumstances for IIS
2013-04-20 14:53:27 +02:00
Fabien Potencier
1b2619078d Merge branch '2.2'
* 2.2:
  Fix default value handling for multi-value options
  [HttpKernel] truncate profiler token to 6 chars (see #7665)
  Disabled APC on Travis for PHP 5.5+ as it is not available
  [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path
  Fix download over SSL using IE < 8 and binary file response
  [Console] Fix merging of application definition, fixes #7068, replaces #7158
  [HttpKernel] fixed the Kernel when the ClassLoader component is not available (closes #7406)
  fixed output of bag values
  [Yaml] improved boolean naming ($notEOF -> !$EOF)
  [Yaml] fixed handling an empty value
  [Routing][XML Loader] Add a possibility to set a default value to null
  [Console] fixed handling of "0" input on ask
  The /e modifier for preg_replace() is deprecated in PHP 5.5; replace with preg_replace_callback()
  fixed handling of "0" input on ask
  [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
  [Form] DateTimeToRfc3339Transformer use proper transformation exteption in reverse transformation
  Update PhpEngine.php
  [PropertyAccess] Add objectives to pluralMap
  [Security] Removed unused var
  [HttpFoundation] getClientIp is fixed.

Conflicts:
	src/Symfony/Component/Console/Tests/Command/CommandTest.php
	src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php
	src/Symfony/Component/HttpFoundation/Request.php
	src/Symfony/Component/HttpKernel/Kernel.php
2013-04-17 07:31:37 +02:00
Fabien Potencier
fd58a5f424 Merge branch '2.1' into 2.2
* 2.1:
  Fix default value handling for multi-value options
  [HttpKernel] truncate profiler token to 6 chars (see #7665)
  Disabled APC on Travis for PHP 5.5+ as it is not available
  [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path
  [Yaml] improved boolean naming ($notEOF -> !$EOF)
  [Yaml] fixed handling an empty value
  [Routing][XML Loader] Add a possibility to set a default value to null
  The /e modifier for preg_replace() is deprecated in PHP 5.5; replace with preg_replace_callback()
  [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
  [Form] DateTimeToRfc3339Transformer use proper transformation exteption in reverse transformation
  Update PhpEngine.php
  [HttpFoundation] getClientIp is fixed.

Conflicts:
	.travis.yml
	src/Symfony/Component/Routing/Loader/XmlFileLoader.php
	src/Symfony/Component/Routing/Loader/schema/routing/routing-1.0.xsd
	src/Symfony/Component/Routing/Tests/Fixtures/validpattern.xml
	src/Symfony/Component/Routing/Tests/Loader/XmlFileLoaderTest.php
2013-04-17 07:27:14 +02:00
Dorian Villet
f0c4ab663a [HttpFoundation] Split the tests into two methods / data providers. 2013-04-09 14:58:53 +02:00
Dorian Villet
63cbbb5889 [HttpFoundation] Add tests for the newly created Request::getClientIps() method. 2013-04-09 14:29:45 +02:00
Ben Davies
9fcd2f6005 [HttpFoundation] fixed the creation of sub-requests under some circumstances for IIS 2013-04-09 09:37:01 +01:00
dened
c4da2d9892 [HttpFoundation] getClientIp is fixed.
The getClientIp now returns ip of the earliest server in a proxy chain when all the servers in the chain are trusted proxies. Before this patch the getClientIp used to return null at such condition.
Some appropriate tests are added.
2013-03-25 11:05:20 +04:00
Fabien Potencier
09a5969b89 [HttpFoundation] removed deprecated Request::splitHttpAcceptHeader() method 2013-03-23 11:48:18 +01:00
Fabien Potencier
c28f1b0926 removed deprected way to declared trusted proxies 2013-03-23 11:48:18 +01:00
Fabien Potencier
03fc97d11a Merge branch '2.1' into 2.2
* 2.1:
  #7106 - fix for ZTS builds
  Added '@@' escaping strategy for YamlFileLoader and YamlDumper
  [Yaml] fixed bugs with folded scalar parsing
  [Form] made DefaultCsrfProvider using session_status() when available
  Added unit tests to Dumper
  Update .travis.yml (closes #7355)
  [HttpFoudantion] fixed Request::getPreferredLanguage()
  Revert "merged branch jfsimon/issue-6928 (PR #7378)"
  Routing issue with installation in a sub-directory ref: https://github.com/symfony/symfony/issues/7129

Conflicts:
	.travis.yml
	src/Symfony/Bundle/FrameworkBundle/Routing/Router.php
	src/Symfony/Component/Routing/RouteCollection.php
2013-03-23 08:49:54 +01:00
Jean-François Simon
c928ddc77d [HttpFoudantion] fixed Request::getPreferredLanguage() 2013-03-20 15:10:59 +01:00
Jean-François Simon
839c78a4b0 Revert "merged branch jfsimon/issue-6928 (PR #7378)"
This reverts commit 70ec4f6c61, reversing
changes made to 3a03f3e346.
2013-03-20 14:19:35 +01:00
Fabien Potencier
b3ca7988cc Merge branch '2.1' into 2.2
* 2.1:
  Add a public modifier to an interface method
  [HttpRequest] fixes Request::getLanguages() bug
  [HttpCache] added a test (cached content should be kept after purging)
  [DoctrineBridge] Fixed non-utf-8 recognition
  [Security] fixed HttpUtils class tests
2013-03-19 21:41:20 +01:00
Michel Weimerskirch
17dc2ff895 [HttpRequest] fixes Request::getLanguages() bug 2013-03-18 14:41:52 +01:00
Fabien Potencier
738de9a246 [HttpKernel] added a unit for the previous commit (closes #7025) 2013-02-17 14:09:02 +01:00
Fabien Potencier
d0e964a1ae merged branch dlsniper/small-http-foundation-enhancement (PR #6999)
This PR was squashed before being merged into the 2.2 branch (closes #6999).

Commits
-------

de0f7b7 [HttpFoundation] Added getter for httpMethodParameterOverride state

Discussion
----------

[HttpFoundation] Added getter for httpMethodParameterOverride state

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #6984
| License       | MIT
| Doc PR        | ~
2013-02-15 08:33:56 +01:00
Florin Patan
de0f7b759f [HttpFoundation] Added getter for httpMethodParameterOverride state 2013-02-15 08:33:55 +01:00
Fabien Potencier
bc4a0e751e [HttpFoundation] fixed Request::create() method
When creating a Request with Request::create(), some information can
come from the URI and the server variable. Until now, it was not clear
which information had precedence over the other and as a matter of fact,
this method was not consistent.

Now, information contained in the URI always take precedence over
information coming from the server array. That makes sense as the server
array is often copied from another existing Request object.
2013-02-07 16:26:12 +01:00
Fabien Potencier
18b9e68861 [HttpFoundation] renamed hostname to host in the test to be consistent 2013-01-21 17:56:55 +01:00
Colin Frei
6b105504f4 Merge branch 'master' of github.com:symfony/symfony into deprecationErrors 2012-12-14 23:30:36 +01:00
Fabien Potencier
6e45f1cd78 Merge branch '2.1'
* 2.1:
  [HttpFoundation] changed UploadedFile::move() to use move_uploaded_file() when possible (closes #5878, closes #6185)
  [HttpFoundation] added a check for the host header value
  [DoctrineBridge] Improved performance of the EntityType when used with the "query_builder" option
  [DoctrineBridge] Improved exception message
  [DoctrineBridge] Fixed: Exception is thrown if the entity class is not known to Doctrine
  Removed useless branch alias for dev-master in composer.json

Conflicts:
	composer.json
	src/Symfony/Bridge/Doctrine/composer.json
	src/Symfony/Bridge/Monolog/composer.json
	src/Symfony/Bridge/Propel1/composer.json
	src/Symfony/Bridge/Swiftmailer/composer.json
	src/Symfony/Bridge/Twig/composer.json
	src/Symfony/Bundle/FrameworkBundle/composer.json
	src/Symfony/Bundle/SecurityBundle/composer.json
	src/Symfony/Bundle/TwigBundle/composer.json
	src/Symfony/Bundle/WebProfilerBundle/composer.json
	src/Symfony/Component/BrowserKit/composer.json
	src/Symfony/Component/ClassLoader/composer.json
	src/Symfony/Component/Config/composer.json
	src/Symfony/Component/Console/composer.json
	src/Symfony/Component/CssSelector/composer.json
	src/Symfony/Component/DependencyInjection/composer.json
	src/Symfony/Component/DomCrawler/composer.json
	src/Symfony/Component/EventDispatcher/composer.json
	src/Symfony/Component/Filesystem/composer.json
	src/Symfony/Component/Finder/composer.json
	src/Symfony/Component/Form/composer.json
	src/Symfony/Component/HttpFoundation/composer.json
	src/Symfony/Component/HttpKernel/composer.json
	src/Symfony/Component/Locale/composer.json
	src/Symfony/Component/OptionsResolver/composer.json
	src/Symfony/Component/Process/composer.json
	src/Symfony/Component/Routing/composer.json
	src/Symfony/Component/Security/composer.json
	src/Symfony/Component/Serializer/composer.json
	src/Symfony/Component/Templating/composer.json
	src/Symfony/Component/Translation/composer.json
	src/Symfony/Component/Validator/composer.json
	src/Symfony/Component/Yaml/composer.json
2012-12-07 10:33:24 +01:00
Fabien Potencier
864cc8598f Merge branch '2.0' into 2.1
* 2.0:
  [HttpFoundation] changed UploadedFile::move() to use move_uploaded_file() when possible (closes #5878, closes #6185)
  [HttpFoundation] added a check for the host header value

Conflicts:
	src/Symfony/Component/HttpFoundation/File/File.php
	src/Symfony/Component/HttpFoundation/Request.php
	src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
2012-12-07 10:29:55 +01:00
Colin Frei
1f9eb7f292 return value of handleError 2012-12-03 22:04:34 +01:00
Colin Frei
b35de9e15b Handle errors using a custom error handler
Without the custom handler, assertions after the first failure wouldn't be executed. This catches E_USER_DEPRECATED errors and passes everything else on to the phpunit error handler.
2012-12-03 21:43:03 +01:00
Colin Frei
f49704b14f trigger errors for deprecated methods in HttpFoundation component 2012-12-03 20:49:11 +01:00
Victor Berchet
bad50ac501 [HttpFoundation] Request::getRealMethod() now returns UPPERCASE 2012-11-30 23:41:06 +01:00
Fabien Potencier
50a62da114 Merge branch '2.1'
* 2.1:
  [HttpFoundation] reverted variable rename
2012-11-29 12:32:58 +01:00
Fabien Potencier
d50f9d7431 Merge branch '2.0' into 2.1
* 2.0:
  [HttpFoundation] reverted variable rename

Conflicts:
	src/Symfony/Component/HttpFoundation/Request.php
2012-11-29 12:32:44 +01:00
Fabien Potencier
995219f39b Merge branch '2.1'
* 2.1:
  replaced magic strings by proper constants
  refactored tests for Request
  fixed the logic in Request::isSecure() (if the information comes from a source that we trust, don't check other ones)
  added a way to configure the X-Forwarded-XXX header names and a way to disable trusting them
  fixed algorithm used to determine the trusted client IP
  removed the non-standard Client-IP HTTP header

Conflicts:
	src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
2012-11-29 12:29:12 +01:00
Fabien Potencier
6c67476ef0 Merge branch '2.0' into 2.1
* 2.0:
  replaced magic strings by proper constants
  refactored tests for Request
  fixed the logic in Request::isSecure() (if the information comes from a source that we trust, don't check other ones)
  added a way to configure the X-Forwarded-XXX header names and a way to disable trusting them
  fixed algorithm used to determine the trusted client IP
  removed the non-standard Client-IP HTTP header

Conflicts:
	src/Symfony/Component/HttpFoundation/Request.php
	src/Symfony/Component/HttpFoundation/Tests/RequestTest.php
2012-11-29 12:27:48 +01:00