{"action":"created","comment":{"url":"https://api.github.com/repos/codice/ddf/pulls/comments/137136770","pull_request_review_id":60765374,"id":137136770,"diff_hunk":"@@ -0,0 +1,107 @@\n+:title: Realms\n+:type: subSecurityFramework\n+:status: published\n+:parent: Subject\n+:order: 01\n+:summary: Shiro realms.\n+\n+${branding} uses Realms for Authentication and Authorization.\n+\n+===== Authenticating Realms\n+\n+`org.apache.shiro.realm.AuthenticatingRealm`\n+\n+Authenticating Realms are used to authenticate an incoming authentication token and create a Subject on successful authentication.\n+\n+.Implementations of Authenticating Realms in ${branding}:\n+[cols=\"1m,2\" options=\"header\"]\n+|===\n+\n+|Classname\n+|Description\n+\n+|${ddf-branding-lowercase}.security.realm.sts.StsRealm\n+|This realm delegates authentication to the Secure Token Service (STS). It creates a `RequestSecurityToken` message from the incoming Authentication Token and converts a successful STS response into a Subject.\n+\n+|===\n+\n+===== Authorizing Realms\n+\n+`org.apache.shiro.realm.AuthorizingRealm`\n+\n+Authorizing Realms are used to perform authorization on the current Subject.\n+These are used when performing both Service AuthZ and Filtering.\n+They are passed in the `AuthorizationInfo` of the Subject along with the Permissions of the object wanting to be accessed. The response from these realms is a true (if the Subject has permission to access) or false (if the Subject does not).\n+\n+.Other implementations of the Security API within ${branding}\n+[cols=\"1m,2\" options=\"header\"]\n+|===\n+\n+|Classname\n+|Description\n+\n+|org.codice.${ddf-branding-lowercase}.platform.filter.delegate.DelegateServletFilter\n+|The `DelegateServletFilter` detects any servlet filters that have been exposed as OSGi services implementing `org.codice.ddf.platform.filter.SecurityFilter` and places them in-order in front of any servlet or web application running on the container.\n+\n+|org.codice.${ddf-branding-lowercase}.security.filter.websso.WebSSOFilter\n+|This filter serves as the main security filter that works in conjunction with a number of handlers to protect a variety of contexts, each using different authentication schemes and policies.\n+\n+|org.codice.${ddf-branding-lowercase}.security.handler.saml.SAMLAssertionHandler\n+|This handler is executed by the WebSSOFilter for any contexts configured to use it.\n+This handler should always come first when configured in the Web Context Policy Manager, as it provides a caching capability to web contexts that use it.\n+The handler will first check for the existence of an HTTP Authorization header of type SAML, whose value is a Base64 + deflate SAML assertion.\n+If that is not found, then the handler will check for the existence of the deprecated `org.codice.websso.saml.token` cookie with the same value.\n+Failing that, it will check for a JSESSIONID cookie to use as a reference to a cached assertion.\n+If the JSESSIONID is valid, the `SecurityToken` will be retrieved from the cache.\n+\n+|org.codice.${ddf-branding-lowercase}.security.handler.basic.BasicAuthenticationHandler\n+|Checks for basic authentication credentials in the http request header.\n+If they exist, they are retrieved and passed to the `LoginFilter` for exchange.\n+\n+|org.codice.${ddf-branding-lowercase}.security.handler.pki.PKIHandler\n+|Handler for PKI based authentication.\n+X509 chain will be extracted from the HTTP request and converted to a `BinarySecurityToken`.\n+\n+|org.codice.${ddf-branding-lowercase}.security.handler.guest.GuestHandler\n+|Handler that allows guest user access via a guest user account.\n+The guest account credentials are configured via the org.codice.${ddf-branding-lowercase}.security.claims.guest.GuestClaimsHandler.\n+The `GuestHandler` also checks for the existence of basic auth credentials or PKI credentials that might be able to override the use of the guest user.\n+\n+|org.codice.${ddf-branding-lowercase}.security.filter.login.LoginFilter\n+|This filter runs immediately after the WebSSOFilter and exchanges any authentication information found in the request with a Subject via Shiro.\n+\n+|org.codice.${ddf-branding-lowercase}.security.filter.authorization.AuthorizationFilter\n+|This filter runs immediately after the `LoginFilter` and checks any permissions assigned to the web context against the attributes of the user via Shiro.","path":"distribution/docs/src/main/jdocs/content/_security-framework/realms-contents.adoc","position":74,"original_position":74,"commit_id":"8346c7b9bade427ba070258e46e6f2f9fcb9bca2","original_commit_id":"8346c7b9bade427ba070258e46e6f2f9fcb9bca2","user":{"login":"ricklarsen","id":10619999,"avatar_url":"https://avatars2.githubusercontent.com/u/10619999?v=4","gravatar_id":"","url":"https://api.github.com/users/ricklarsen","html_url":"https://github.com/ricklarsen","followers_url":"https://api.github.com/users/ricklarsen/followers","following_url":"https://api.github.com/users/ricklarsen/following{/other_user}","gists_url":"https://api.github.com/users/ricklarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/ricklarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricklarsen/subscriptions","organizations_url":"https://api.github.com/users/ricklarsen/orgs","repos_url":"https://api.github.com/users/ricklarsen/repos","events_url":"https://api.github.com/users/ricklarsen/events{/privacy}","received_events_url":"https://api.github.com/users/ricklarsen/received_events","type":"User","site_admin":false},"body":"I added some information about Shiro to the paragraph above, but I can make this a link too if it is clearer.","created_at":"2017-09-05T23:06:14Z","updated_at":"2017-09-05T23:06:14Z","html_url":"https://github.com/codice/ddf/pull/2272#discussion_r137136770","pull_request_url":"https://api.github.com/repos/codice/ddf/pulls/2272","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments/137136770"},"html":{"href":"https://github.com/codice/ddf/pull/2272#discussion_r137136770"},"pull_request":{"href":"https://api.github.com/repos/codice/ddf/pulls/2272"}},"in_reply_to_id":137117422},"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/2272","id":138512605,"html_url":"https://github.com/codice/ddf/pull/2272","diff_url":"https://github.com/codice/ddf/pull/2272.diff","patch_url":"https://github.com/codice/ddf/pull/2272.patch","issue_url":"https://api.github.com/repos/codice/ddf/issues/2272","number":2272,"state":"open","locked":false,"title":"DDF-2890 added templates for security framework sections of the docs","user":{"login":"ricklarsen","id":10619999,"avatar_url":"https://avatars2.githubusercontent.com/u/10619999?v=4","gravatar_id":"","url":"https://api.github.com/users/ricklarsen","html_url":"https://github.com/ricklarsen","followers_url":"https://api.github.com/users/ricklarsen/followers","following_url":"https://api.github.com/users/ricklarsen/following{/other_user}","gists_url":"https://api.github.com/users/ricklarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/ricklarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricklarsen/subscriptions","organizations_url":"https://api.github.com/users/ricklarsen/orgs","repos_url":"https://api.github.com/users/ricklarsen/repos","events_url":"https://api.github.com/users/ricklarsen/events{/privacy}","received_events_url":"https://api.github.com/users/ricklarsen/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\n\r\n- Adds \"Security Framework\" sections to documentation.\r\n- Minor edits to section ordering, some files were split to work with template.\r\n\r\n#### Who is reviewing it? \r\n\r\n@mcalcote @emmberk @vinamartin @Lambeaux @ahoffer @jrnorth \r\n\r\n#### Choose 2 committers to review/merge the PR. \r\n@clockard\r\n@coyotesqrl\r\n@lessarderic\r\n@pklinef\r\n@ricklarsen - Documentation\r\n@shaundmorris\r\n@stustison\r\n\r\n#### How should this be tested? (List steps with links to updated documentation)\r\n\r\n- builds successfully\r\n- all relevant sections are being included in `jdocumentation.html/pdf`\r\n\r\n#### Any background context you want to provide?\r\n\r\nMost \"new\" adoc files are existing content  with headers attached. Some files were split up to work within template. Some sections were relocated to a more appropriate section. Priority for review is on outline and completeness of sections being included. Content review is OPTIONAL.\r\n\r\n#### What are the relevant tickets?\r\n[DDF-2890](https://codice.atlassian.net/browse/DDF-2890)\r\n\r\n#### Screenshots (if appropriate)\r\n\r\n[jdocumentation.pdf](https://github.com/codice/ddf/files/1264871/jdocumentation.pdf)\r\n\r\n#### Checklist:\r\n- [x] Documentation Updated\r\n- [ ] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n\r\n#### Review Comment Legend:\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.\r\n","created_at":"2017-08-30T19:49:05Z","updated_at":"2017-09-05T23:06:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"657bf8c701fc4deaa55455b373d9037ae0d3c859","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/codice/ddf/pulls/2272/commits","review_comments_url":"https://api.github.com/repos/codice/ddf/pulls/2272/comments","review_comment_url":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/ddf/issues/2272/comments","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/8346c7b9bade427ba070258e46e6f2f9fcb9bca2","head":{"label":"ricklarsen:DDF-2890","ref":"DDF-2890","sha":"8346c7b9bade427ba070258e46e6f2f9fcb9bca2","user":{"login":"ricklarsen","id":10619999,"avatar_url":"https://avatars2.githubusercontent.com/u/10619999?v=4","gravatar_id":"","url":"https://api.github.com/users/ricklarsen","html_url":"https://github.com/ricklarsen","followers_url":"https://api.github.com/users/ricklarsen/followers","following_url":"https://api.github.com/users/ricklarsen/following{/other_user}","gists_url":"https://api.github.com/users/ricklarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/ricklarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricklarsen/subscriptions","organizations_url":"https://api.github.com/users/ricklarsen/orgs","repos_url":"https://api.github.com/users/ricklarsen/repos","events_url":"https://api.github.com/users/ricklarsen/events{/privacy}","received_events_url":"https://api.github.com/users/ricklarsen/received_events","type":"User","site_admin":false},"repo":{"id":31686896,"name":"ddf","full_name":"ricklarsen/ddf","owner":{"login":"ricklarsen","id":10619999,"avatar_url":"https://avatars2.githubusercontent.com/u/10619999?v=4","gravatar_id":"","url":"https://api.github.com/users/ricklarsen","html_url":"https://github.com/ricklarsen","followers_url":"https://api.github.com/users/ricklarsen/followers","following_url":"https://api.github.com/users/ricklarsen/following{/other_user}","gists_url":"https://api.github.com/users/ricklarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/ricklarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricklarsen/subscriptions","organizations_url":"https://api.github.com/users/ricklarsen/orgs","repos_url":"https://api.github.com/users/ricklarsen/repos","events_url":"https://api.github.com/users/ricklarsen/events{/privacy}","received_events_url":"https://api.github.com/users/ricklarsen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ricklarsen/ddf","description":"The Distributed Data Framework - Distribution, SDK, and Test","fork":true,"url":"https://api.github.com/repos/ricklarsen/ddf","forks_url":"https://api.github.com/repos/ricklarsen/ddf/forks","keys_url":"https://api.github.com/repos/ricklarsen/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ricklarsen/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ricklarsen/ddf/teams","hooks_url":"https://api.github.com/repos/ricklarsen/ddf/hooks","issue_events_url":"https://api.github.com/repos/ricklarsen/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/ricklarsen/ddf/events","assignees_url":"https://api.github.com/repos/ricklarsen/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/ricklarsen/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/ricklarsen/ddf/tags","blobs_url":"https://api.github.com/repos/ricklarsen/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ricklarsen/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ricklarsen/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/ricklarsen/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ricklarsen/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/ricklarsen/ddf/languages","stargazers_url":"https://api.github.com/repos/ricklarsen/ddf/stargazers","contributors_url":"https://api.github.com/repos/ricklarsen/ddf/contributors","subscribers_url":"https://api.github.com/repos/ricklarsen/ddf/subscribers","subscription_url":"https://api.github.com/repos/ricklarsen/ddf/subscription","commits_url":"https://api.github.com/repos/ricklarsen/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/ricklarsen/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/ricklarsen/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/ricklarsen/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/ricklarsen/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/ricklarsen/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ricklarsen/ddf/merges","archive_url":"https://api.github.com/repos/ricklarsen/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ricklarsen/ddf/downloads","issues_url":"https://api.github.com/repos/ricklarsen/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/ricklarsen/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/ricklarsen/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/ricklarsen/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ricklarsen/ddf/labels{/name}","releases_url":"https://api.github.com/repos/ricklarsen/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/ricklarsen/ddf/deployments","created_at":"2015-03-05T00:10:16Z","updated_at":"2016-01-11T23:35:02Z","pushed_at":"2017-09-05T20:57:44Z","git_url":"git://github.com/ricklarsen/ddf.git","ssh_url":"git@github.com:ricklarsen/ddf.git","clone_url":"https://github.com/ricklarsen/ddf.git","svn_url":"https://github.com/ricklarsen/ddf","homepage":"","size":321770,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"codice:master","ref":"master","sha":"6a8d7621ae52f7a30068dd0ee9be322977d178b4","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":"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-08-23T20:37:37Z","pushed_at":"2017-09-05T23:01:50Z","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":328452,"stargazers_count":62,"watchers_count":62,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":119,"mirror_url":null,"open_issues_count":34,"forks":119,"open_issues":34,"watchers":62,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/2272"},"html":{"href":"https://github.com/codice/ddf/pull/2272"},"issue":{"href":"https://api.github.com/repos/codice/ddf/issues/2272"},"comments":{"href":"https://api.github.com/repos/codice/ddf/issues/2272/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/ddf/pulls/2272/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/ddf/pulls/2272/commits"},"statuses":{"href":"https://api.github.com/repos/codice/ddf/statuses/8346c7b9bade427ba070258e46e6f2f9fcb9bca2"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ricklarsen"}}