{"action":"created","comment":{"url":"https://api.github.com/repos/codice/ddf/pulls/comments/152624035","pull_request_review_id":78515081,"id":152624035,"diff_hunk":"@@ -93,7 +93,7 @@\n             <saml2:Audience>https://localhost:8993/services</saml2:Audience>\n         </saml2:AudienceRestriction>\n     </saml2:Conditions>\n-    <saml2:AuthnStatement AuthnInstant=\"2013-04-23T23:39:54.777Z\">\n+    <saml2:AuthnStatement AuthnInstant=\"2013-04-23T23:39:54.777Z\" SessionIndex=\"1\">","path":"platform/security/idp/security-idp-server/src/test/resources/saml.xml","position":5,"original_position":5,"commit_id":"68c5ef1b6897b6d3527d13cc30186388bef131b4","original_commit_id":"e95828d3d2617dce4210bcafbaf13efdb7aee837","user":{"login":"ahoffer","id":133284,"avatar_url":"https://avatars3.githubusercontent.com/u/133284?v=4","gravatar_id":"","url":"https://api.github.com/users/ahoffer","html_url":"https://github.com/ahoffer","followers_url":"https://api.github.com/users/ahoffer/followers","following_url":"https://api.github.com/users/ahoffer/following{/other_user}","gists_url":"https://api.github.com/users/ahoffer/gists{/gist_id}","starred_url":"https://api.github.com/users/ahoffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahoffer/subscriptions","organizations_url":"https://api.github.com/users/ahoffer/orgs","repos_url":"https://api.github.com/users/ahoffer/repos","events_url":"https://api.github.com/users/ahoffer/events{/privacy}","received_events_url":"https://api.github.com/users/ahoffer/received_events","type":"User","site_admin":false},"body":"Fixed","created_at":"2017-11-22T16:57:24Z","updated_at":"2017-11-22T16:57:24Z","html_url":"https://github.com/codice/ddf/pull/2631#discussion_r152624035","pull_request_url":"https://api.github.com/repos/codice/ddf/pulls/2631","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments/152624035"},"html":{"href":"https://github.com/codice/ddf/pull/2631#discussion_r152624035"},"pull_request":{"href":"https://api.github.com/repos/codice/ddf/pulls/2631"}},"in_reply_to_id":151484333},"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/2631","id":151209476,"html_url":"https://github.com/codice/ddf/pull/2631","diff_url":"https://github.com/codice/ddf/pull/2631.diff","patch_url":"https://github.com/codice/ddf/pull/2631.patch","issue_url":"https://api.github.com/repos/codice/ddf/issues/2631","number":2631,"state":"open","locked":false,"title":"[2.11.x] DDF-3422 Add SessionIndex to SAML LogoutRequest","user":{"login":"ahoffer","id":133284,"avatar_url":"https://avatars3.githubusercontent.com/u/133284?v=4","gravatar_id":"","url":"https://api.github.com/users/ahoffer","html_url":"https://github.com/ahoffer","followers_url":"https://api.github.com/users/ahoffer/followers","following_url":"https://api.github.com/users/ahoffer/following{/other_user}","gists_url":"https://api.github.com/users/ahoffer/gists{/gist_id}","starred_url":"https://api.github.com/users/ahoffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahoffer/subscriptions","organizations_url":"https://api.github.com/users/ahoffer/orgs","repos_url":"https://api.github.com/users/ahoffer/repos","events_url":"https://api.github.com/users/ahoffer/events{/privacy}","received_events_url":"https://api.github.com/users/ahoffer/received_events","type":"User","site_admin":false},"body":"What does this PR do?\r\nImplements SessionIndex for SAML. Specifically:\r\n- SecurityAssertionImpl parses a SecurityToken, it copies the SessionIndex from the Security token into its own copy of the AuthnStatement\r\n- The SessionIndex is extracted from an incoming SAML logout request by the LogoutMessage\r\n- The SamlProtocol class copies the SessionIndex from the LogoutRequest it creates\r\n- The SamlValidator checks for the presence of a SessionIndex when it validates a SAML request. It throws an exception is one is not found\r\n- Added SessionIndex attribute to XML file used in testing\r\n- Changed how SessionIndex is generated in AuthnStatementProvider. SessionIndex can be any string, but standard recommends small-ish integer. It now generate only positive session indexes and reduces the upper size of a session index\r\n- Added unit test to SessionAssertionTest to check for presence of session index\r\n- Updated LogoutMessageSpecTest.groovy to account for session indexes\r\n- Updated LogoutRequestServiceTest to account for session indexes.  Also added \r\n  \r\nOther\r\n- Fixes a bug in the toString() method of HandlerResult that caused a null pointer exception (only inside of the IDE)\r\n- Fixed some Sonar Lint findings in LogoutRequestService and LogoutReqestServiceTest\r\n\r\nWho is reviewing it?\r\n@mcalcote @vinamartin @lessarderic\r\n\r\n(please choose AT LEAST two reviewers that need to approve the PR before it can get merged)\r\n@rzwiefel \r\n@stustison \r\n@figliold \r\n\r\nHow should this be tested? (List steps with links to updated documentation)\r\nLogin, logout. There should be no errors. \r\n\r\nWhat are the relevant tickets?\r\nhttps://codice.atlassian.net/browse/DDF-3422\r\n\r\nChecklist:\r\n[N/A] Documentation Updated\r\n[X] Update / Add Unit Tests\r\n[N/A Update / Add Integration Tests\r\n\r\nReview Comment Legend:\r\n\r\n✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist.\r\n❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.","created_at":"2017-11-07T19:46:55Z","updated_at":"2017-11-22T16:57:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b6039d6622ac46269ffbb8c5f1ebd4100478286","assignee":{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false},"assignees":[{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false},{"login":"figliold","id":4838043,"avatar_url":"https://avatars3.githubusercontent.com/u/4838043?v=4","gravatar_id":"","url":"https://api.github.com/users/figliold","html_url":"https://github.com/figliold","followers_url":"https://api.github.com/users/figliold/followers","following_url":"https://api.github.com/users/figliold/following{/other_user}","gists_url":"https://api.github.com/users/figliold/gists{/gist_id}","starred_url":"https://api.github.com/users/figliold/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/figliold/subscriptions","organizations_url":"https://api.github.com/users/figliold/orgs","repos_url":"https://api.github.com/users/figliold/repos","events_url":"https://api.github.com/users/figliold/events{/privacy}","received_events_url":"https://api.github.com/users/figliold/received_events","type":"User","site_admin":false},{"login":"rzwiefel","id":9013416,"avatar_url":"https://avatars0.githubusercontent.com/u/9013416?v=4","gravatar_id":"","url":"https://api.github.com/users/rzwiefel","html_url":"https://github.com/rzwiefel","followers_url":"https://api.github.com/users/rzwiefel/followers","following_url":"https://api.github.com/users/rzwiefel/following{/other_user}","gists_url":"https://api.github.com/users/rzwiefel/gists{/gist_id}","starred_url":"https://api.github.com/users/rzwiefel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rzwiefel/subscriptions","organizations_url":"https://api.github.com/users/rzwiefel/orgs","repos_url":"https://api.github.com/users/rzwiefel/repos","events_url":"https://api.github.com/users/rzwiefel/events{/privacy}","received_events_url":"https://api.github.com/users/rzwiefel/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/codice/ddf/milestones/15","html_url":"https://github.com/codice/ddf/milestone/15","labels_url":"https://api.github.com/repos/codice/ddf/milestones/15/labels","id":2881770,"number":15,"title":"2.11.3","description":"","creator":{"login":"clockard","id":5248090,"avatar_url":"https://avatars1.githubusercontent.com/u/5248090?v=4","gravatar_id":"","url":"https://api.github.com/users/clockard","html_url":"https://github.com/clockard","followers_url":"https://api.github.com/users/clockard/followers","following_url":"https://api.github.com/users/clockard/following{/other_user}","gists_url":"https://api.github.com/users/clockard/gists{/gist_id}","starred_url":"https://api.github.com/users/clockard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clockard/subscriptions","organizations_url":"https://api.github.com/users/clockard/orgs","repos_url":"https://api.github.com/users/clockard/repos","events_url":"https://api.github.com/users/clockard/events{/privacy}","received_events_url":"https://api.github.com/users/clockard/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":6,"state":"open","created_at":"2017-11-01T20:53:47Z","updated_at":"2017-11-16T22:55:09Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/codice/ddf/pulls/2631/commits","review_comments_url":"https://api.github.com/repos/codice/ddf/pulls/2631/comments","review_comment_url":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/ddf/issues/2631/comments","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/68c5ef1b6897b6d3527d13cc30186388bef131b4","head":{"label":"ahoffer:DDF-3422","ref":"DDF-3422","sha":"68c5ef1b6897b6d3527d13cc30186388bef131b4","user":{"login":"ahoffer","id":133284,"avatar_url":"https://avatars3.githubusercontent.com/u/133284?v=4","gravatar_id":"","url":"https://api.github.com/users/ahoffer","html_url":"https://github.com/ahoffer","followers_url":"https://api.github.com/users/ahoffer/followers","following_url":"https://api.github.com/users/ahoffer/following{/other_user}","gists_url":"https://api.github.com/users/ahoffer/gists{/gist_id}","starred_url":"https://api.github.com/users/ahoffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahoffer/subscriptions","organizations_url":"https://api.github.com/users/ahoffer/orgs","repos_url":"https://api.github.com/users/ahoffer/repos","events_url":"https://api.github.com/users/ahoffer/events{/privacy}","received_events_url":"https://api.github.com/users/ahoffer/received_events","type":"User","site_admin":false},"repo":{"id":42614877,"name":"ddf","full_name":"ahoffer/ddf","owner":{"login":"ahoffer","id":133284,"avatar_url":"https://avatars3.githubusercontent.com/u/133284?v=4","gravatar_id":"","url":"https://api.github.com/users/ahoffer","html_url":"https://github.com/ahoffer","followers_url":"https://api.github.com/users/ahoffer/followers","following_url":"https://api.github.com/users/ahoffer/following{/other_user}","gists_url":"https://api.github.com/users/ahoffer/gists{/gist_id}","starred_url":"https://api.github.com/users/ahoffer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahoffer/subscriptions","organizations_url":"https://api.github.com/users/ahoffer/orgs","repos_url":"https://api.github.com/users/ahoffer/repos","events_url":"https://api.github.com/users/ahoffer/events{/privacy}","received_events_url":"https://api.github.com/users/ahoffer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ahoffer/ddf","description":"The Distributed Data Framework - Distribution, SDK, and Test","fork":true,"url":"https://api.github.com/repos/ahoffer/ddf","forks_url":"https://api.github.com/repos/ahoffer/ddf/forks","keys_url":"https://api.github.com/repos/ahoffer/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ahoffer/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ahoffer/ddf/teams","hooks_url":"https://api.github.com/repos/ahoffer/ddf/hooks","issue_events_url":"https://api.github.com/repos/ahoffer/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/ahoffer/ddf/events","assignees_url":"https://api.github.com/repos/ahoffer/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/ahoffer/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/ahoffer/ddf/tags","blobs_url":"https://api.github.com/repos/ahoffer/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ahoffer/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ahoffer/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/ahoffer/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ahoffer/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/ahoffer/ddf/languages","stargazers_url":"https://api.github.com/repos/ahoffer/ddf/stargazers","contributors_url":"https://api.github.com/repos/ahoffer/ddf/contributors","subscribers_url":"https://api.github.com/repos/ahoffer/ddf/subscribers","subscription_url":"https://api.github.com/repos/ahoffer/ddf/subscription","commits_url":"https://api.github.com/repos/ahoffer/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/ahoffer/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/ahoffer/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/ahoffer/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/ahoffer/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/ahoffer/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ahoffer/ddf/merges","archive_url":"https://api.github.com/repos/ahoffer/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ahoffer/ddf/downloads","issues_url":"https://api.github.com/repos/ahoffer/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/ahoffer/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/ahoffer/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/ahoffer/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ahoffer/ddf/labels{/name}","releases_url":"https://api.github.com/repos/ahoffer/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/ahoffer/ddf/deployments","created_at":"2015-09-16T21:39:29Z","updated_at":"2016-01-12T21:13:31Z","pushed_at":"2017-11-22T15:07:41Z","git_url":"git://github.com/ahoffer/ddf.git","ssh_url":"git@github.com:ahoffer/ddf.git","clone_url":"https://github.com/ahoffer/ddf.git","svn_url":"https://github.com/ahoffer/ddf","homepage":"","size":190066,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"codice:2.11.x","ref":"2.11.x","sha":"7dd7f72c536717ed4fb479ef336346c9bf47506c","user":{"login":"codice","id":2386734,"avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"repo":{"id":15173563,"name":"ddf","full_name":"codice/ddf","owner":{"login":"codice","id":2386734,"avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/codice/ddf","description":"DDF Distributed Data Framework - an open source, modular integration framework.","fork":false,"url":"https://api.github.com/repos/codice/ddf","forks_url":"https://api.github.com/repos/codice/ddf/forks","keys_url":"https://api.github.com/repos/codice/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codice/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codice/ddf/teams","hooks_url":"https://api.github.com/repos/codice/ddf/hooks","issue_events_url":"https://api.github.com/repos/codice/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/codice/ddf/events","assignees_url":"https://api.github.com/repos/codice/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/codice/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/codice/ddf/tags","blobs_url":"https://api.github.com/repos/codice/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codice/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codice/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/codice/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/codice/ddf/languages","stargazers_url":"https://api.github.com/repos/codice/ddf/stargazers","contributors_url":"https://api.github.com/repos/codice/ddf/contributors","subscribers_url":"https://api.github.com/repos/codice/ddf/subscribers","subscription_url":"https://api.github.com/repos/codice/ddf/subscription","commits_url":"https://api.github.com/repos/codice/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/codice/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/codice/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/codice/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/codice/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/codice/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codice/ddf/merges","archive_url":"https://api.github.com/repos/codice/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codice/ddf/downloads","issues_url":"https://api.github.com/repos/codice/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/codice/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/codice/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/codice/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codice/ddf/labels{/name}","releases_url":"https://api.github.com/repos/codice/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/codice/ddf/deployments","created_at":"2013-12-13T20:38:28Z","updated_at":"2017-11-14T22:40:26Z","pushed_at":"2017-11-22T16:54:55Z","git_url":"git://github.com/codice/ddf.git","ssh_url":"git@github.com:codice/ddf.git","clone_url":"https://github.com/codice/ddf.git","svn_url":"https://github.com/codice/ddf","homepage":"http://ddf.codice.org","size":365467,"stargazers_count":68,"watchers_count":68,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":121,"mirror_url":null,"archived":false,"open_issues_count":43,"forks":121,"open_issues":43,"watchers":68,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/2631"},"html":{"href":"https://github.com/codice/ddf/pull/2631"},"issue":{"href":"https://api.github.com/repos/codice/ddf/issues/2631"},"comments":{"href":"https://api.github.com/repos/codice/ddf/issues/2631/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/ddf/pulls/2631/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/ddf/pulls/2631/commits"},"statuses":{"href":"https://api.github.com/repos/codice/ddf/statuses/68c5ef1b6897b6d3527d13cc30186388bef131b4"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ahoffer"}}