{"action":"created","comment":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/comments/227042808","pull_request_review_id":166995135,"id":227042808,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNzA0MjgwOA==","diff_hunk":"@@ -193,6 +193,13 @@\n             <optional>true</optional>\n         </dependency>\n \n+        <!-- Security -->\n+        <dependency>\n+            <groupId>org.springframework.cloud</groupId>\n+            <artifactId>spring-cloud-gcp-security-iap</artifactId>\n+            <version>1.1.0.BUILD-SNAPSHOT</version>","path":"spring-cloud-gcp-autoconfigure/pom.xml","position":8,"original_position":8,"commit_id":"11138105389a41a575eba250b4f866625089bafd","original_commit_id":"11138105389a41a575eba250b4f866625089bafd","user":{"login":"meltsufin","id":17732492,"node_id":"MDQ6VXNlcjE3NzMyNDky","avatar_url":"https://avatars2.githubusercontent.com/u/17732492?v=4","gravatar_id":"","url":"https://api.github.com/users/meltsufin","html_url":"https://github.com/meltsufin","followers_url":"https://api.github.com/users/meltsufin/followers","following_url":"https://api.github.com/users/meltsufin/following{/other_user}","gists_url":"https://api.github.com/users/meltsufin/gists{/gist_id}","starred_url":"https://api.github.com/users/meltsufin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/meltsufin/subscriptions","organizations_url":"https://api.github.com/users/meltsufin/orgs","repos_url":"https://api.github.com/users/meltsufin/repos","events_url":"https://api.github.com/users/meltsufin/events{/privacy}","received_events_url":"https://api.github.com/users/meltsufin/received_events","type":"User","site_admin":false},"body":"optional and no version please","created_at":"2018-10-22T16:23:00Z","updated_at":"2018-10-22T16:28:36Z","html_url":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126#discussion_r227042808","pull_request_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/comments/227042808"},"html":{"href":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126#discussion_r227042808"},"pull_request":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126"}}},"pull_request":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126","id":224400854,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0NDAwODU0","html_url":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126","diff_url":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126.diff","patch_url":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126.patch","issue_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/1126","number":1126,"state":"open","locked":false,"title":"[WIP] Extract IAP identity from HTTP header","user":{"login":"elefeint","id":41136058,"node_id":"MDQ6VXNlcjQxMTM2MDU4","avatar_url":"https://avatars1.githubusercontent.com/u/41136058?v=4","gravatar_id":"","url":"https://api.github.com/users/elefeint","html_url":"https://github.com/elefeint","followers_url":"https://api.github.com/users/elefeint/followers","following_url":"https://api.github.com/users/elefeint/following{/other_user}","gists_url":"https://api.github.com/users/elefeint/gists{/gist_id}","starred_url":"https://api.github.com/users/elefeint/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elefeint/subscriptions","organizations_url":"https://api.github.com/users/elefeint/orgs","repos_url":"https://api.github.com/users/elefeint/repos","events_url":"https://api.github.com/users/elefeint/events{/privacy}","received_events_url":"https://api.github.com/users/elefeint/received_events","type":"User","site_admin":false},"body":"Two things I want feedback on the most are:\r\n1) Overall code structure with logic split between main module, autoconfiguration, starter and sample.\r\n2) Whether reusing oauth2 functionality is the right decision.\r\n**Upside:** don't have to re-implement retrieving/caching JWK information; can reuse some of the claim verification abstractions.\r\n**Downside:** \r\n     * less control over functionality\r\n     * the abstraction is almost-but-not-perfect fit\r\n     * if spring security ever stops validating that the token was properly signed, there will be a security hole of epic proportions since the current version of the code does not re-do it.\r\n\r\nI am personally inclined to stop relying on oauth2 logic and reimplement it, but I'd like a second opinion.\r\n\r\nResolves: #1016","created_at":"2018-10-19T20:24:26Z","updated_at":"2018-10-22T16:28:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cb4fc47cd770dea5f78ec1f3929c44dfb3af53f6","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1055732544,"node_id":"MDU6TGFiZWwxMDU1NzMyNTQ0","url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/labels/security","name":"security","color":"edb971","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126/commits","review_comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126/comments","review_comment_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/1126/comments","statuses_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/statuses/11138105389a41a575eba250b4f866625089bafd","head":{"label":"spring-cloud:security-autoconfig","ref":"security-autoconfig","sha":"11138105389a41a575eba250b4f866625089bafd","user":{"login":"spring-cloud","id":7815877,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc4MTU4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"repo":{"id":86105877,"node_id":"MDEwOlJlcG9zaXRvcnk4NjEwNTg3Nw==","name":"spring-cloud-gcp","full_name":"spring-cloud/spring-cloud-gcp","private":false,"owner":{"login":"spring-cloud","id":7815877,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc4MTU4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/spring-cloud/spring-cloud-gcp","description":"Integration for Google Cloud Platform APIs with Spring","fork":false,"url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp","forks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/forks","keys_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/teams","hooks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/hooks","issue_events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/events{/number}","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/events","assignees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/assignees{/user}","branches_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/branches{/branch}","tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/tags","blobs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/refs{/sha}","trees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/statuses/{sha}","languages_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/languages","stargazers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/stargazers","contributors_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/contributors","subscribers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/subscribers","subscription_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/subscription","commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/commits{/sha}","git_commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/commits{/sha}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/comments{/number}","issue_comment_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/comments{/number}","contents_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/contents/{+path}","compare_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/merges","archive_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/downloads","issues_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues{/number}","pulls_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls{/number}","milestones_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/milestones{/number}","notifications_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/labels{/name}","releases_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/releases{/id}","deployments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/deployments","created_at":"2017-03-24T19:58:20Z","updated_at":"2018-10-22T16:10:28Z","pushed_at":"2018-10-22T15:40:10Z","git_url":"git://github.com/spring-cloud/spring-cloud-gcp.git","ssh_url":"git@github.com:spring-cloud/spring-cloud-gcp.git","clone_url":"https://github.com/spring-cloud/spring-cloud-gcp.git","svn_url":"https://github.com/spring-cloud/spring-cloud-gcp","homepage":null,"size":3957,"stargazers_count":197,"watchers_count":197,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":102,"mirror_url":null,"archived":false,"open_issues_count":74,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":102,"open_issues":74,"watchers":197,"default_branch":"master"}},"base":{"label":"spring-cloud:master","ref":"master","sha":"37e1036940481c4396353d204377757566ba796d","user":{"login":"spring-cloud","id":7815877,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc4MTU4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"repo":{"id":86105877,"node_id":"MDEwOlJlcG9zaXRvcnk4NjEwNTg3Nw==","name":"spring-cloud-gcp","full_name":"spring-cloud/spring-cloud-gcp","private":false,"owner":{"login":"spring-cloud","id":7815877,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc4MTU4Nzc=","avatar_url":"https://avatars0.githubusercontent.com/u/7815877?v=4","gravatar_id":"","url":"https://api.github.com/users/spring-cloud","html_url":"https://github.com/spring-cloud","followers_url":"https://api.github.com/users/spring-cloud/followers","following_url":"https://api.github.com/users/spring-cloud/following{/other_user}","gists_url":"https://api.github.com/users/spring-cloud/gists{/gist_id}","starred_url":"https://api.github.com/users/spring-cloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spring-cloud/subscriptions","organizations_url":"https://api.github.com/users/spring-cloud/orgs","repos_url":"https://api.github.com/users/spring-cloud/repos","events_url":"https://api.github.com/users/spring-cloud/events{/privacy}","received_events_url":"https://api.github.com/users/spring-cloud/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/spring-cloud/spring-cloud-gcp","description":"Integration for Google Cloud Platform APIs with Spring","fork":false,"url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp","forks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/forks","keys_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/teams","hooks_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/hooks","issue_events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/events{/number}","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/events","assignees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/assignees{/user}","branches_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/branches{/branch}","tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/tags","blobs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/refs{/sha}","trees_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/statuses/{sha}","languages_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/languages","stargazers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/stargazers","contributors_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/contributors","subscribers_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/subscribers","subscription_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/subscription","commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/commits{/sha}","git_commits_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/git/commits{/sha}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/comments{/number}","issue_comment_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/comments{/number}","contents_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/contents/{+path}","compare_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/merges","archive_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/downloads","issues_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues{/number}","pulls_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls{/number}","milestones_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/milestones{/number}","notifications_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/labels{/name}","releases_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/releases{/id}","deployments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/deployments","created_at":"2017-03-24T19:58:20Z","updated_at":"2018-10-22T16:10:28Z","pushed_at":"2018-10-22T15:40:10Z","git_url":"git://github.com/spring-cloud/spring-cloud-gcp.git","ssh_url":"git@github.com:spring-cloud/spring-cloud-gcp.git","clone_url":"https://github.com/spring-cloud/spring-cloud-gcp.git","svn_url":"https://github.com/spring-cloud/spring-cloud-gcp","homepage":null,"size":3957,"stargazers_count":197,"watchers_count":197,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":102,"mirror_url":null,"archived":false,"open_issues_count":74,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":102,"open_issues":74,"watchers":197,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126"},"html":{"href":"https://github.com/spring-cloud/spring-cloud-gcp/pull/1126"},"issue":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/1126"},"comments":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/issues/1126/comments"},"review_comments":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126/comments"},"review_comment":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/pulls/1126/commits"},"statuses":{"href":"https://api.github.com/repos/spring-cloud/spring-cloud-gcp/statuses/11138105389a41a575eba250b4f866625089bafd"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"meltsufin"}}