Commit Graph

1026 Commits

Author SHA1 Message Date
Fabien Potencier
f85cdd266b [HttpFoundation] fixed phpdoc 2013-04-23 09:43:42 +02:00
Fabien Potencier
1aa68dab07 [HttpFoundation] added a way to inject a custom magic file into FileinfoMimeTypeGuesser (closes #6963) 2013-04-23 09:31:45 +02:00
Fabien Potencier
29b5413134 [HttpFoundation] added some more phpdocs to clarify usage 2013-04-23 09:14:05 +02:00
Fabien Potencier
ee784fb433 clarified how/when to use client or guessed mime-types and extensions on a File instance (closes #5039) 2013-04-23 08:57:53 +02:00
Fabien Potencier
eaaaac7432 [HttpFoundation] fixed CS for previous merge 2013-04-22 12:31:13 +02:00
erikaheidi
fde044cc1a enhance upload error messages 2013-04-22 08:32:55 +02:00
Fabien Potencier
2b473cbb65 Merge branch '2.2'
* 2.2:
  added missing license blocks
  added missing license blocks
2013-04-22 06:30:07 +02:00
Fabien Potencier
a8af3e2c18 added missing license blocks 2013-04-22 06:29:54 +02:00
Pascal Borreli
0a12fd619e Fixed typos 2013-04-21 13:23:54 +00:00
Pascal Borreli
7cfa66159e Fixed PHPDocs 2013-04-21 12:26:17 +00: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
51d20fe647 merged branch MidnightLightning/master (PR #7634)
This PR was squashed before being merged into the master branch (closes #7634).

Discussion
----------

[2.3][HttpFoundation] PDO Session handling enhancements

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

`PdoSessionHandler` class assumes that the PDO object is set to throw exceptions, not errors. I added a line in the constructor to set that attribute, so configuration/query errors are able to be seen and caught a lot easier.

Commits
-------

ce8a441 [2.3][HttpFoundation] PDO Session handling enhancements
2013-04-20 22:37:19 +02:00
Brooks Boyd
ce8a441c10 [2.3][HttpFoundation] PDO Session handling enhancements 2013-04-20 22:37:19 +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
36d057b69e [HttpFoundation][BrowserKit] fixed path when converting a cookie to a string
An empty path has a different meaning than a /; it means that the path
is the one from the current URI.
2013-04-20 20:05:01 +02:00
Fabien Potencier
495d0e366e [HttpFoundation] fixed empty domain= in Cookie::__toString() 2013-04-20 19:50:53 +02:00
Fabien Potencier
7b32794b79 [HttpFoundation] updated CHANGELOG 2013-04-20 17:52:13 +02:00
Fabien Potencier
e7c1696278 [HttpFoundation] refactored code to avoid code duplication 2013-04-20 17:49:57 +02:00
Fabien Potencier
169506743b [HttpFoundation] added some unit tests for ranges of trusted IP addresses 2013-04-20 17:49:57 +02:00
Dmitrii Chekaliuk
ddc9e3892f Modify Request::getClientIp() to use IpUtils::checkIp()
Adds the ability to use CIDR notation in the trusted proxy list
2013-04-20 17:49:56 +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
51a3561ed4 [SecurityBundle] added a missing entry in the CHANGELOG 2013-04-20 15:51:07 +02:00
Fabien Potencier
1777d984b9 merged branch danfinnie/multiple_ip_matching (PR #7251)
This PR was squashed before being merged into the master branch (closes #7251).

Discussion
----------

[SecurityBundle] [HttpFoundation] Allow for multiple IP address in security access_control rules

Fixes #7249.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes (small)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7249
| License       | MIT
| Doc PR        | n/a

Commits
-------

650352d [SecurityBundle] [HttpFoundation] Allow for multiple IP address in security access_control rules
2013-04-20 15:48:17 +02:00
Dan Finnie
650352d1ca [SecurityBundle] [HttpFoundation] Allow for multiple IP address in security access_control rules 2013-04-20 15:48:16 +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
e5af87047c [HttpFoundation] fixed CS of previous merge 2013-04-20 14:21:31 +02:00
David Marín
00d2643540 Showing file that has sent headers if cannot start session
If session cannot be started because of already-sent headers, show the file and line from which the output has been started.
2013-04-20 12:51:05 +03:00
Fabien Potencier
5a3428dc78 Revert "merged branch drak/start_on_demand (PR #7576)"
This reverts commit 7aa06818bc, reversing
changes made to 7bf8933662.
2013-04-18 07:30:58 +02:00
Fabien Potencier
6f817c1c6f Revert "fixed CS"
This reverts commit 5415b4e26f.
2013-04-18 07:30:47 +02:00
Fabien Potencier
5415b4e26f fixed CS 2013-04-18 07:27:22 +02:00
Fabien Potencier
7aa06818bc merged branch drak/start_on_demand (PR #7576)
This PR was merged into the master branch.

Discussion
----------

[2.3][Session] Give greater control over how and when session starts

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | na
| License       | MIT
| Doc PR        | symfony/symfony-docs#2475

Refs #6036

Gives control over how start on demand works: allowing to turn it on or off and to allow bag access when session is off.

Commits
-------

f431cb0 Fix tests
1f521d8 Coding standards
2583c26 [HttpFoundation][FrameworkBundle] Keep save auto_start behaviour as in 2.2 and make component values consistent with FrameworkBundle's configuration options.
ceaf69b [FrameworkBundle] Use more sophisticated validation and configuration.
af0a140 [FrameworkBundle] Add configuration to allow control over session start on demand.
8fc2397 [HttpFoundation] Give control over how session start on demand.
2013-04-18 07:26:17 +02:00
Fabien Potencier
7bf8933662 merged branch drak/session_detect (PR #7571)
This PR was squashed before being merged into the master branch (closes #7571).

Discussion
----------

[2.3] Handle PHP sessions started outside of Symfony

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | symfony/symfony-docs#2474

This PR brings a way to allow Symfony2 to manage a session started outside of Symfony in such a way that quite explicit. It also introduces more robust detection of previously started sessions under PHP 5.3 and supports real session status detection under PHP 5.4

Commits
-------

df99902 [2.3] Handle PHP sessions started outside of Symfony
2013-04-18 07:19:50 +02:00
Drak
df99902a01 [2.3] Handle PHP sessions started outside of Symfony 2013-04-18 07:19:50 +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
Fabien Potencier
e52fe4db1d merged branch gnutix/issue-7349-fix (PR #7612)
This PR was merged into the master branch.

Discussion
----------

[HttpFoundation] Split getClientIp into two methods for better flexibility

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | Locally: NO (HttpFoundation tests passes, but all Symfony tests fails because of my local setup). Travis : YES
| Fixed tickets | #7349
| License       | MIT
| Doc PR        | none (yet?)

Split the ``Request::getClientIp`` method in two to allow better overriding flexibility. See #7349 for more information.

Commits
-------

2678dd5 [HttpFoundation] Move comments from one method to the other [ci skip].
7529664 [HttpFoundation] Removed the @api annotation on getClientIps method.
f0c4ab6 [HttpFoundation] Split the tests into two methods / data providers.
80030fb [HttpFoundation] Use @see annotation for better documentation generation.
3e703a2 [HttpFoundation] Fixing tests.
63cbbb5 [HttpFoundation] Add tests for the newly created Request::getClientIps() method.
58347fb [HttpFoundation] Split getClientIp into two methods for better flexibility.
2013-04-12 17:30:12 +02:00
Tobias Schultze
d552e4c396 [HttpFoundation] do not use server variable PATH_INFO because it is already decoded and thus symfony is fragile to double encoding of the path 2013-04-12 17:03:10 +02:00
Nicolas Le Goff
4c51ec7866 Fix download over SSL using IE < 8 and binary file response 2013-04-12 15:45:42 +02:00
Dorian Villet
2678dd519a [HttpFoundation] Move comments from one method to the other [ci skip]. 2013-04-12 15:07:20 +02:00
Fabien Potencier
0d32445414 merged branch MaxVandervelde/fix/namespaced-parameter-issue (PR #7586)
This PR was merged into the 2.1 branch.

Discussion
----------

[HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag

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

Fixed a bug in NamespacedAttributeBag causing a result to be falsely found when
the last key of the attribute matched the last of the queried name regardless of
if the key did not exist in the search.
Added Tests to demonstrate the issue and resolved by setting keys to null when
iterating through query and returning proper responses in the case that the
given array does in fact not exist.

Commits
-------

0f0c29c [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
2013-04-12 08:49:49 +02:00
Drak
1f521d8d62 Coding standards
As requested by @fabpot
2013-04-11 12:33:14 +01:00
dantleech
e655120f05 Enforce sprintf for exceptions 2013-04-11 08:50:46 +02:00
Maxwell Vandervelde
0f0c29c9bf [HttpFoundation] Fixed bug in key searching for NamespacedAttributeBag
Fixed a bug in NamespacedAttributeBag causing a result to be falsely found when
the last key of the attribute matched the last of the queried name regardless of
if the key did not exist in the search.
Added Tests to demonstrate the issue and resolved by setting keys to null when
iterating through query and returning proper responses in the case that the
given array does in fact not exist.

* Updated Syntax of null checks
* Fixing missing else case for if statement in write context
2013-04-10 09:17:16 -05:00
Dorian Villet
7529664a43 [HttpFoundation] Removed the @api annotation on getClientIps method. 2013-04-09 18:16:59 +02:00
Fabien Potencier
c8bd45b2c7 merged branch denvned/getClientIp-fix (PR #7472)
This PR was merged into the 2.1 branch.

Discussion
----------

[HttpFoundation] getClientIp is fixed.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | no

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.

Commits
-------

c4da2d9 [HttpFoundation] getClientIp is fixed.
2013-04-09 18:02:56 +02:00