{"action":"created","comment":{"url":"https://api.github.com/repos/symfony/symfony/pulls/comments/68699096","id":68699096,"diff_hunk":"@@ -0,0 +1,57 @@\n+<?php\n+\n+/*\n+ * This file is part of the Symfony package.\n+ *\n+ * (c) Fabien Potencier <fabien@symfony.com>\n+ *\n+ * For the full copyright and license information, please view the LICENSE\n+ * file that was distributed with this source code.\n+ */\n+\n+namespace Symfony\\Component\\HttpKernel\\EventListener;\n+\n+use Symfony\\Component\\EventDispatcher\\EventSubscriberInterface;\n+use Symfony\\Component\\HttpFoundation\\Exception\\ConflictingHeadersException;\n+use Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent;\n+use Symfony\\Component\\HttpKernel\\Exception\\HttpException;\n+use Symfony\\Component\\HttpKernel\\HttpKernelInterface;\n+use Symfony\\Component\\HttpKernel\\KernelEvents;\n+\n+/**\n+ * Validates that the headers and other information indicating the\n+ * client IP address of a request are consistent.\n+ *\n+ * @author Magnus Nordlander <magnus@fervo.se>\n+ */\n+class ValidateRequestClientIpListener implements EventSubscriberInterface","path":"src/Symfony/Component/HttpKernel/EventListener/ValidateRequestClientIpListener.php","position":27,"original_position":27,"commit_id":"a9f864d1176a29792d7a8cfbc11ac1e897a2eacd","original_commit_id":"a9f864d1176a29792d7a8cfbc11ac1e897a2eacd","user":{"login":"fabpot","id":47313,"avatar_url":"https://avatars.githubusercontent.com/u/47313?v=3","gravatar_id":"","url":"https://api.github.com/users/fabpot","html_url":"https://github.com/fabpot","followers_url":"https://api.github.com/users/fabpot/followers","following_url":"https://api.github.com/users/fabpot/following{/other_user}","gists_url":"https://api.github.com/users/fabpot/gists{/gist_id}","starred_url":"https://api.github.com/users/fabpot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fabpot/subscriptions","organizations_url":"https://api.github.com/users/fabpot/orgs","repos_url":"https://api.github.com/users/fabpot/repos","events_url":"https://api.github.com/users/fabpot/events{/privacy}","received_events_url":"https://api.github.com/users/fabpot/received_events","type":"User","site_admin":false},"body":"What about naming this class `ValidateRequestListener` to allow adding more checks in the future?","created_at":"2016-06-28T05:25:17Z","updated_at":"2016-06-28T05:25:17Z","html_url":"https://github.com/symfony/symfony/pull/18688#discussion_r68699096","pull_request_url":"https://api.github.com/repos/symfony/symfony/pulls/18688","_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments/68699096"},"html":{"href":"https://github.com/symfony/symfony/pull/18688#discussion_r68699096"},"pull_request":{"href":"https://api.github.com/repos/symfony/symfony/pulls/18688"}}},"pull_request":{"url":"https://api.github.com/repos/symfony/symfony/pulls/18688","id":68555203,"html_url":"https://github.com/symfony/symfony/pull/18688","diff_url":"https://github.com/symfony/symfony/pull/18688.diff","patch_url":"https://github.com/symfony/symfony/pull/18688.patch","issue_url":"https://api.github.com/repos/symfony/symfony/issues/18688","number":18688,"state":"open","locked":false,"title":"[HttpFoundation] Warning when request has both Forwarded and X-Forwarded-For","user":{"login":"magnusnordlander","id":165002,"avatar_url":"https://avatars.githubusercontent.com/u/165002?v=3","gravatar_id":"","url":"https://api.github.com/users/magnusnordlander","html_url":"https://github.com/magnusnordlander","followers_url":"https://api.github.com/users/magnusnordlander/followers","following_url":"https://api.github.com/users/magnusnordlander/following{/other_user}","gists_url":"https://api.github.com/users/magnusnordlander/gists{/gist_id}","starred_url":"https://api.github.com/users/magnusnordlander/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/magnusnordlander/subscriptions","organizations_url":"https://api.github.com/users/magnusnordlander/orgs","repos_url":"https://api.github.com/users/magnusnordlander/repos","events_url":"https://api.github.com/users/magnusnordlander/events{/privacy}","received_events_url":"https://api.github.com/users/magnusnordlander/received_events","type":"User","site_admin":false},"body":"| Q             | A\r\n| ------------- | ---\r\n| Branch?       | 2.7\r\n| Bug fix?      | yes\r\n| New feature?  | no\r\n| BC breaks?    | no\r\n| Deprecations? | no\r\n| Tests pass?   | yes\r\n| Fixed tickets | \r\n| License       | MIT\r\n| Doc PR        | symfony/symfony-docs#6526\r\n\r\nEmit a warning when a request has both a trusted Forwarded header and a trusted X-Forwarded-For header, as this is most likely a misconfiguration which causes security issues.","created_at":"2016-05-02T12:45:44Z","updated_at":"2016-06-28T05:25:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d12403c060e695546a82c6cfa9cdb0bfbdfae1ef","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/symfony/symfony/pulls/18688/commits","review_comments_url":"https://api.github.com/repos/symfony/symfony/pulls/18688/comments","review_comment_url":"https://api.github.com/repos/symfony/symfony/pulls/comments{/number}","comments_url":"https://api.github.com/repos/symfony/symfony/issues/18688/comments","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/a9f864d1176a29792d7a8cfbc11ac1e897a2eacd","head":{"label":"fervo:proxy-trust-warning","ref":"proxy-trust-warning","sha":"a9f864d1176a29792d7a8cfbc11ac1e897a2eacd","user":{"login":"fervo","id":883627,"avatar_url":"https://avatars.githubusercontent.com/u/883627?v=3","gravatar_id":"","url":"https://api.github.com/users/fervo","html_url":"https://github.com/fervo","followers_url":"https://api.github.com/users/fervo/followers","following_url":"https://api.github.com/users/fervo/following{/other_user}","gists_url":"https://api.github.com/users/fervo/gists{/gist_id}","starred_url":"https://api.github.com/users/fervo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fervo/subscriptions","organizations_url":"https://api.github.com/users/fervo/orgs","repos_url":"https://api.github.com/users/fervo/repos","events_url":"https://api.github.com/users/fervo/events{/privacy}","received_events_url":"https://api.github.com/users/fervo/received_events","type":"Organization","site_admin":false},"repo":{"id":53808811,"name":"symfony","full_name":"fervo/symfony","owner":{"login":"fervo","id":883627,"avatar_url":"https://avatars.githubusercontent.com/u/883627?v=3","gravatar_id":"","url":"https://api.github.com/users/fervo","html_url":"https://github.com/fervo","followers_url":"https://api.github.com/users/fervo/followers","following_url":"https://api.github.com/users/fervo/following{/other_user}","gists_url":"https://api.github.com/users/fervo/gists{/gist_id}","starred_url":"https://api.github.com/users/fervo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fervo/subscriptions","organizations_url":"https://api.github.com/users/fervo/orgs","repos_url":"https://api.github.com/users/fervo/repos","events_url":"https://api.github.com/users/fervo/events{/privacy}","received_events_url":"https://api.github.com/users/fervo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/fervo/symfony","description":"The Symfony PHP framework","fork":true,"url":"https://api.github.com/repos/fervo/symfony","forks_url":"https://api.github.com/repos/fervo/symfony/forks","keys_url":"https://api.github.com/repos/fervo/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fervo/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fervo/symfony/teams","hooks_url":"https://api.github.com/repos/fervo/symfony/hooks","issue_events_url":"https://api.github.com/repos/fervo/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/fervo/symfony/events","assignees_url":"https://api.github.com/repos/fervo/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/fervo/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/fervo/symfony/tags","blobs_url":"https://api.github.com/repos/fervo/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fervo/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fervo/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/fervo/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fervo/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/fervo/symfony/languages","stargazers_url":"https://api.github.com/repos/fervo/symfony/stargazers","contributors_url":"https://api.github.com/repos/fervo/symfony/contributors","subscribers_url":"https://api.github.com/repos/fervo/symfony/subscribers","subscription_url":"https://api.github.com/repos/fervo/symfony/subscription","commits_url":"https://api.github.com/repos/fervo/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/fervo/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/fervo/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/fervo/symfony/issues/comments{/number}","contents_url":"https://api.github.com/repos/fervo/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/fervo/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fervo/symfony/merges","archive_url":"https://api.github.com/repos/fervo/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fervo/symfony/downloads","issues_url":"https://api.github.com/repos/fervo/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/fervo/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/fervo/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/fervo/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fervo/symfony/labels{/name}","releases_url":"https://api.github.com/repos/fervo/symfony/releases{/id}","deployments_url":"https://api.github.com/repos/fervo/symfony/deployments","created_at":"2016-03-13T21:30:40Z","updated_at":"2016-03-13T21:30:55Z","pushed_at":"2016-06-27T17:39:55Z","git_url":"git://github.com/fervo/symfony.git","ssh_url":"git@github.com:fervo/symfony.git","clone_url":"https://github.com/fervo/symfony.git","svn_url":"https://github.com/fervo/symfony","homepage":"symfony.com","size":71203,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"symfony:2.7","ref":"2.7","sha":"fb92d7a04a2779e4bd336c75c4b769980d4f0264","user":{"login":"symfony","id":143937,"avatar_url":"https://avatars.githubusercontent.com/u/143937?v=3","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"repo":{"id":458058,"name":"symfony","full_name":"symfony/symfony","owner":{"login":"symfony","id":143937,"avatar_url":"https://avatars.githubusercontent.com/u/143937?v=3","gravatar_id":"","url":"https://api.github.com/users/symfony","html_url":"https://github.com/symfony","followers_url":"https://api.github.com/users/symfony/followers","following_url":"https://api.github.com/users/symfony/following{/other_user}","gists_url":"https://api.github.com/users/symfony/gists{/gist_id}","starred_url":"https://api.github.com/users/symfony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/symfony/subscriptions","organizations_url":"https://api.github.com/users/symfony/orgs","repos_url":"https://api.github.com/users/symfony/repos","events_url":"https://api.github.com/users/symfony/events{/privacy}","received_events_url":"https://api.github.com/users/symfony/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/symfony/symfony","description":"The Symfony PHP framework","fork":false,"url":"https://api.github.com/repos/symfony/symfony","forks_url":"https://api.github.com/repos/symfony/symfony/forks","keys_url":"https://api.github.com/repos/symfony/symfony/keys{/key_id}","collaborators_url":"https://api.github.com/repos/symfony/symfony/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/symfony/symfony/teams","hooks_url":"https://api.github.com/repos/symfony/symfony/hooks","issue_events_url":"https://api.github.com/repos/symfony/symfony/issues/events{/number}","events_url":"https://api.github.com/repos/symfony/symfony/events","assignees_url":"https://api.github.com/repos/symfony/symfony/assignees{/user}","branches_url":"https://api.github.com/repos/symfony/symfony/branches{/branch}","tags_url":"https://api.github.com/repos/symfony/symfony/tags","blobs_url":"https://api.github.com/repos/symfony/symfony/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/symfony/symfony/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/symfony/symfony/git/refs{/sha}","trees_url":"https://api.github.com/repos/symfony/symfony/git/trees{/sha}","statuses_url":"https://api.github.com/repos/symfony/symfony/statuses/{sha}","languages_url":"https://api.github.com/repos/symfony/symfony/languages","stargazers_url":"https://api.github.com/repos/symfony/symfony/stargazers","contributors_url":"https://api.github.com/repos/symfony/symfony/contributors","subscribers_url":"https://api.github.com/repos/symfony/symfony/subscribers","subscription_url":"https://api.github.com/repos/symfony/symfony/subscription","commits_url":"https://api.github.com/repos/symfony/symfony/commits{/sha}","git_commits_url":"https://api.github.com/repos/symfony/symfony/git/commits{/sha}","comments_url":"https://api.github.com/repos/symfony/symfony/comments{/number}","issue_comment_url":"https://api.github.com/repos/symfony/symfony/issues/comments{/number}","contents_url":"https://api.github.com/repos/symfony/symfony/contents/{+path}","compare_url":"https://api.github.com/repos/symfony/symfony/compare/{base}...{head}","merges_url":"https://api.github.com/repos/symfony/symfony/merges","archive_url":"https://api.github.com/repos/symfony/symfony/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/symfony/symfony/downloads","issues_url":"https://api.github.com/repos/symfony/symfony/issues{/number}","pulls_url":"https://api.github.com/repos/symfony/symfony/pulls{/number}","milestones_url":"https://api.github.com/repos/symfony/symfony/milestones{/number}","notifications_url":"https://api.github.com/repos/symfony/symfony/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/symfony/symfony/labels{/name}","releases_url":"https://api.github.com/repos/symfony/symfony/releases{/id}","deployments_url":"https://api.github.com/repos/symfony/symfony/deployments","created_at":"2010-01-04T14:21:21Z","updated_at":"2016-06-28T03:31:52Z","pushed_at":"2016-06-27T21:51:20Z","git_url":"git://github.com/symfony/symfony.git","ssh_url":"git@github.com:symfony/symfony.git","clone_url":"https://github.com/symfony/symfony.git","svn_url":"https://github.com/symfony/symfony","homepage":"symfony.com","size":134281,"stargazers_count":12558,"watchers_count":12558,"language":"PHP","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":4902,"mirror_url":null,"open_issues_count":689,"forks":4902,"open_issues":689,"watchers":12558,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/symfony/symfony/pulls/18688"},"html":{"href":"https://github.com/symfony/symfony/pull/18688"},"issue":{"href":"https://api.github.com/repos/symfony/symfony/issues/18688"},"comments":{"href":"https://api.github.com/repos/symfony/symfony/issues/18688/comments"},"review_comments":{"href":"https://api.github.com/repos/symfony/symfony/pulls/18688/comments"},"review_comment":{"href":"https://api.github.com/repos/symfony/symfony/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/symfony/symfony/pulls/18688/commits"},"statuses":{"href":"https://api.github.com/repos/symfony/symfony/statuses/a9f864d1176a29792d7a8cfbc11ac1e897a2eacd"}}}}
{"actor":{"display_login":"fabpot"}}