)]}'
{"keystonemiddleware/audit.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ecfaae32d01709c7ed1b81d02ef13c9531af6282","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                             \u0027token does not contain a service catalog. For \u0027"},{"line_number":299,"context_line":"                             \u0027the latter, please make sure the \u0027"},{"line_number":300,"context_line":"                             \u0027\"include_service_catalog\" property in \u0027"},{"line_number":301,"context_line":"                             \u0027auth_token middleware is set to \"True\"\u0027))"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        default_endpoint \u003d None"},{"line_number":304,"context_line":"        for endp in catalog:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_3c23e5be","line":301,"updated":"2016-05-26 11:33:28.000000000","message":"Can we add some service information here, to make sure who called this action without a token?","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"0d3e835f127d82fe468dab37e5025d71d1fe2326","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                             \u0027token does not contain a service catalog. For \u0027"},{"line_number":299,"context_line":"                             \u0027the latter, please make sure the \u0027"},{"line_number":300,"context_line":"                             \u0027\"include_service_catalog\" property in \u0027"},{"line_number":301,"context_line":"                             \u0027auth_token middleware is set to \"True\"\u0027))"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        default_endpoint \u003d None"},{"line_number":304,"context_line":"        for endp in catalog:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_ee8d0a32","line":301,"in_reply_to":"bab6814e_3c23e5be","updated":"2016-05-26 18:42:52.000000000","message":"We do have the caller\u0027s IP in the event. That\u0027s all we can get.","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ecfaae32d01709c7ed1b81d02ef13c9531af6282","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        initiator \u003d ClientResource("},{"line_number":439,"context_line":"            typeURI\u003dtaxonomy.ACCOUNT_USER,"},{"line_number":440,"context_line":"            id\u003dreq.environ.get(\u0027HTTP_X_USER_ID\u0027, taxonomy.UNKNOWN),"},{"line_number":441,"context_line":"            name\u003dreq.environ.get(\u0027HTTP_X_USER_NAME\u0027, taxonomy.UNKNOWN),"},{"line_number":442,"context_line":"            host\u003dhost.Host(address\u003dreq.client_addr, agent\u003dreq.user_agent),"},{"line_number":443,"context_line":"            credential\u003dKeystoneCredential("},{"line_number":444,"context_line":"                token\u003dreq.environ.get(\u0027HTTP_X_AUTH_TOKEN\u0027, \u0027\u0027),"},{"line_number":445,"context_line":"                identity_status\u003dreq.environ.get(\u0027HTTP_X_IDENTITY_STATUS\u0027,"},{"line_number":446,"context_line":"                                                taxonomy.UNKNOWN)),"},{"line_number":447,"context_line":"            project_id\u003dreq.environ.get(\u0027HTTP_X_PROJECT_ID\u0027, taxonomy.UNKNOWN))"},{"line_number":448,"context_line":"        target \u003d self._cadf_audit.get_target_resource(req)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        event \u003d factory.EventFactory().new_event("}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_7fb39f4d","line":447,"range":{"start_line":440,"start_character":0,"end_line":447,"end_character":78},"updated":"2016-05-26 11:33:28.000000000","message":"We need differentiate somehow between a request that should works without token, like as you mentioned in the commit message, and a wrong request that needs a token?","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"0d3e835f127d82fe468dab37e5025d71d1fe2326","unresolved":false,"context_lines":[{"line_number":437,"context_line":""},{"line_number":438,"context_line":"        initiator \u003d ClientResource("},{"line_number":439,"context_line":"            typeURI\u003dtaxonomy.ACCOUNT_USER,"},{"line_number":440,"context_line":"            id\u003dreq.environ.get(\u0027HTTP_X_USER_ID\u0027, taxonomy.UNKNOWN),"},{"line_number":441,"context_line":"            name\u003dreq.environ.get(\u0027HTTP_X_USER_NAME\u0027, taxonomy.UNKNOWN),"},{"line_number":442,"context_line":"            host\u003dhost.Host(address\u003dreq.client_addr, agent\u003dreq.user_agent),"},{"line_number":443,"context_line":"            credential\u003dKeystoneCredential("},{"line_number":444,"context_line":"                token\u003dreq.environ.get(\u0027HTTP_X_AUTH_TOKEN\u0027, \u0027\u0027),"},{"line_number":445,"context_line":"                identity_status\u003dreq.environ.get(\u0027HTTP_X_IDENTITY_STATUS\u0027,"},{"line_number":446,"context_line":"                                                taxonomy.UNKNOWN)),"},{"line_number":447,"context_line":"            project_id\u003dreq.environ.get(\u0027HTTP_X_PROJECT_ID\u0027, taxonomy.UNKNOWN))"},{"line_number":448,"context_line":"        target \u003d self._cadf_audit.get_target_resource(req)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"        event \u003d factory.EventFactory().new_event("}],"source_content_type":"text/x-python","patch_set":2,"id":"bab6814e_ee098a96","line":447,"range":{"start_line":440,"start_character":0,"end_line":447,"end_character":78},"in_reply_to":"bab6814e_7fb39f4d","updated":"2016-05-26 18:42:52.000000000","message":"Wrong request won\u0027t even make it this far. It will be either rejected by auth_token middleware, or if \"delay_auth_decision\" is set to \"True\", it will get rejected by service authz middleware. Only requests that ended up here are the public API requests which does not require a token. In that case, we do have both the action and the path in the event. The combination of action and path basically constitutes an API request.","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"}],"releasenotes/notes/bug-1583699-dba4fe6c057e2be5.yaml":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d5314e4800006d321abfe4d69a48def482191fc8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - \u003e"},{"line_number":4,"context_line":"    [`bug 1583699 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583699\u003e`_]"},{"line_number":5,"context_line":"    Some service APIs such as Swift list public containers does not require"},{"line_number":6,"context_line":"    a token. Therefore, there will be no identity or service catalog"},{"line_number":7,"context_line":"    information available. In these cases, audit should fill in the default"},{"line_number":8,"context_line":"    (i.e. taxonomy.UNKNOWN) for both initiator and target instead of raising"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9abb7d3a_d1c0f37e","line":5,"range":{"start_line":5,"start_character":59,"end_line":5,"end_character":63},"updated":"2016-05-31 00:12:10.000000000","message":"s/does/do\n\nsince we\u0027re talking about \"service APIs\"","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d5314e4800006d321abfe4d69a48def482191fc8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 1583699 \u003chttps://bugs.launchpad.net/keystonemiddleware/+bug/1583699\u003e`_]"},{"line_number":5,"context_line":"    Some service APIs such as Swift list public containers does not require"},{"line_number":6,"context_line":"    a token. Therefore, there will be no identity or service catalog"},{"line_number":7,"context_line":"    information available. In these cases, audit should fill in the default"},{"line_number":8,"context_line":"    (i.e. taxonomy.UNKNOWN) for both initiator and target instead of raising"},{"line_number":9,"context_line":"    an exception."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9abb7d3a_715f87e5","line":7,"range":{"start_line":7,"start_character":49,"end_line":7,"end_character":60},"updated":"2016-05-31 00:12:10.000000000","message":"replacing this by \"now fills\" makes more sense?","commit_id":"892338c630fd7e65c868eb36493b0f788815687d"}]}
