)]}'
{"etc/keystone.conf.sample":[{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"bd48033e8fa7cd2460b1a037dd736ba10662f0ad","unresolved":false,"context_lines":[{"line_number":193,"context_line":"# The RabbitMQ password. (string value)"},{"line_number":194,"context_line":"#rabbit_password\u003dguest"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# the RabbitMQ login method (string value)"},{"line_number":197,"context_line":"#rabbit_login_method\u003dAMQPLAIN"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"# The RabbitMQ virtual host. (string value)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAWH%2F%2Fx9g%3D","line":196,"updated":"2014-03-13 21:08:40.000000000","message":"Capitalize \"The\" for consistency.","commit_id":"acb3dc48a08e15edbfc4a7d64f4cd5e401368668"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8d9f26e6aa628185ae969978d31747cbb59d0ef","unresolved":false,"context_lines":[{"line_number":193,"context_line":"# The RabbitMQ password. (string value)"},{"line_number":194,"context_line":"#rabbit_password\u003dguest"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"# the RabbitMQ login method (string value)"},{"line_number":197,"context_line":"#rabbit_login_method\u003dAMQPLAIN"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"# The RabbitMQ virtual host. (string value)"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAWH%2F%2Fx50%3D","line":196,"in_reply_to":"AAAAWH%2F%2Fx9g%3D","updated":"2014-03-13 21:14:05.000000000","message":"The sample config file is generated using tox -e sample_config , so this value just came from wherever this is defined and it isn\u0027t part of this change.","commit_id":"acb3dc48a08e15edbfc4a7d64f4cd5e401368668"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"831363c4c42540f6a3c93aba7994d0af50c1d956","unresolved":false,"context_lines":[{"line_number":1302,"context_line":"# The hash algorithm to use. Allowed values are \u0027md5\u0027 and"},{"line_number":1303,"context_line":"# \u0027sha256\u0027. WARNING: Don\u0027t change this value while there are"},{"line_number":1304,"context_line":"# tokens where the expiration has not passed because"},{"line_number":1305,"context_line":"# revocation will not work for those tokens. (string value)"},{"line_number":1306,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1307,"context_line":""},{"line_number":1308,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"AAAAWH%2F%2FVwA%3D","line":1305,"updated":"2014-03-18 14:29:21.000000000","message":"this should also mention that all keystoneclient.middleware.auth_token configurations must match","commit_id":"2ea401f7474bd125ce06a9c1da798f5a8f9d219e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"5b39f22f9fd693b2ee92d58a08eeb1c6dd39f5a7","unresolved":false,"context_lines":[{"line_number":1317,"context_line":"# value)"},{"line_number":1318,"context_line":"#revoke_by_id\u003dtrue"},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"# The hash algorithm to use. Allowed values are \u0027md5\u0027 and"},{"line_number":1321,"context_line":"# \u0027sha256\u0027. WARNING: Don\u0027t change this value while there are"},{"line_number":1322,"context_line":"# tokens where the expiration has not passed because"},{"line_number":1323,"context_line":"# revocation will not work for those tokens.  (string value)"}],"source_content_type":"application/octet-stream","patch_set":11,"id":"AAAAW3%2F%2F%2Bno%3D","line":1320,"updated":"2014-04-09 05:33:32.000000000","message":"Why only \u0027md5\u0027 and \u0027sha256\u0027 are allowed? Should it be any algorithm supported by hashlib?","commit_id":"ae4bbf5f5c210463d597c60259216a96a72b98ac"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"0474c2fd7cd763bc9a9b4fbee195f20eefa5c36f","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2Fk%2Fg%3D","line":1325,"updated":"2014-04-19 04:14:05.000000000","message":"Also don\u0027t we need to mention, that existing tokens which are hashed using previous algorithm  won\u0027t work","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ff8356b312b8850eec88888ebba4999f6cc92f95","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2FRY0%3D","line":1325,"in_reply_to":"AAAAXH%2F%2FZSk%3D","updated":"2014-04-22 20:48:59.000000000","message":"The auth_token middleware allows a list of values -- this allows you to validate the old unexpired tokens that were generated when the keystone server was set to the old value and the new tokens that were generated with the keystone server set to the new value. Once the old tokens have all expired then the auth_token middleware is set to a single algorithm.\n\nThe server doesn\u0027t need a list -- it generates new tokens using the current hash algorithm. It can validate old tokens with the old hash because the database contains the old hash (the tokens in the db aren\u0027t updated).","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"84765498db707e37a035fef1268c9a99754386ce","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2FZSk%3D","line":1325,"in_reply_to":"AAAAXH%2F%2Fb5g%3D","updated":"2014-04-22 05:05:21.000000000","message":"Thanks Lance.  Your explanation was much more clear..  Your link suggests that the value can be a list. But the comment here doesn\u0027t hint that. Is this going to be a list?.","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2be4ff9f53b924d0364d967a89198bddaac6feca","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2Fb5g%3D","line":1325,"in_reply_to":"AAAAXH%2F%2Fdbo%3D","updated":"2014-04-21 20:10:56.000000000","message":"I think that case should be covered here: \n\nhttps://review.openstack.org/#/c/80398/19/keystoneclient/middleware/auth_token.py\n\nwhere the token is checked against all hash_algorithms provided","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0529a100e77babc335ee438bfeee3dcf2fedcef6","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2Fdbo%3D","line":1325,"in_reply_to":"AAAAXH%2F%2FgGY%3D","updated":"2014-04-21 15:50:55.000000000","message":"existing tokens that were issued with md5 will work as long as the instructions that are documented here are followed (setting the hash_algorithms in the auth_token middleware).","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"5472c3b550c1c7b1ea64987bb7d1ab3f90f8ccd6","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2FgGY%3D","line":1325,"in_reply_to":"AAAAXH%2F%2FjU4%3D","updated":"2014-04-21 07:18:43.000000000","message":"May be I\u0027m missing something?.  Say there is a deployment with md5 hash algorithm ( which is default). Now we change the algorithm  to something else and deploy the new version.  Will the existing token which were issued with md5 will work?","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"57b9fd41118f38657cc115f7287f174c4357c46f","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"# changing this value, the auth_token middleware must be"},{"line_number":1323,"context_line":"# configured with the hash_algorithms, otherwise token"},{"line_number":1324,"context_line":"# revocation will not be processed correctly. (string value)"},{"line_number":1325,"context_line":"#hash_algorithm\u003dmd5"},{"line_number":1326,"context_line":""},{"line_number":1327,"context_line":""},{"line_number":1328,"context_line":"[trust]"}],"source_content_type":"application/octet-stream","patch_set":13,"id":"AAAAXH%2F%2FjU4%3D","line":1325,"in_reply_to":"AAAAXH%2F%2Fk%2Fg%3D","updated":"2014-04-19 15:28:13.000000000","message":"Haneef - Existing tokens will work. If you have some text that you would like to see here please provide the text.","commit_id":"bf4ff96472991675f76c95dde8c027417d0deafd"}],"keystone/common/config.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"8302dd620cbadf09dd64dd970b5fcd6c8b58d5ab","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                    \u0027list of tokens to revoke.   Only disable if you are \u0027"},{"line_number":215,"context_line":"                    \u0027switching to using the Revoke extension with a \u0027"},{"line_number":216,"context_line":"                    \u0027backend other than KVS, which stores events in memory.\u0027),"},{"line_number":217,"context_line":"        cfg.StrOpt(\u0027hash_algorithm\u0027,"},{"line_number":218,"context_line":"                   help\u003d\"The hash algorithm to use. Allowed values are \u0027md5\u0027 \""},{"line_number":219,"context_line":"                        \"and \u0027sha256\u0027. The default is to use the default \""},{"line_number":220,"context_line":"                        \"provided by keystoneclient token hashing. \""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F92I4%3D","line":217,"updated":"2014-04-01 17:42:49.000000000","message":", default\u003d\u0027md5\u0027","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1993b5257db5c8766a5feb4b4fd5c148b442cece","unresolved":false,"context_lines":[{"line_number":214,"context_line":"                    \u0027list of tokens to revoke.   Only disable if you are \u0027"},{"line_number":215,"context_line":"                    \u0027switching to using the Revoke extension with a \u0027"},{"line_number":216,"context_line":"                    \u0027backend other than KVS, which stores events in memory.\u0027),"},{"line_number":217,"context_line":"        cfg.StrOpt(\u0027hash_algorithm\u0027,"},{"line_number":218,"context_line":"                   help\u003d\"The hash algorithm to use. Allowed values are \u0027md5\u0027 \""},{"line_number":219,"context_line":"                        \"and \u0027sha256\u0027. The default is to use the default \""},{"line_number":220,"context_line":"                        \"provided by keystoneclient token hashing. \""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F9i6I%3D","line":217,"in_reply_to":"AAAAWH%2F92I4%3D","updated":"2014-04-03 22:28:05.000000000","message":"Done","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"}],"keystone/tests/test_content_types.py":[{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"b012ccaeb3de2331f8c6fa7f14d53bf4bc165e9b","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"        hash_algorithm \u003d \u0027md5\u0027"},{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"        (data, token) \u003d self._fetch_parse_revocation_list()"},{"line_number":1246,"context_line":"        token_hash \u003d cms.cms_hash_token(token, mode\u003dhash_algorithm)"},{"line_number":1247,"context_line":""},{"line_number":1248,"context_line":"        self.assertEqual(hash_algorithm, data[\u0027hash_algorithm\u0027])"},{"line_number":1249,"context_line":"        self.assertEqual(token_hash, data[\u0027revoked\u0027][0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAW3%2F%2F%2FjU%3D","line":1246,"updated":"2014-04-09 00:19:19.000000000","message":"Wouldn\u0027t this more realistically mimic the client if we did the following?\n\n  token_hash \u003d cms.cms_hash_token(token, mode\u003ddata[\u0027hash_algorithm\u0027])\n\nI realize that the result with be the same as what you already have in the patch due to the assertions below, but it seems that this would better mimic the client.","commit_id":"ae4bbf5f5c210463d597c60259216a96a72b98ac"},{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"b012ccaeb3de2331f8c6fa7f14d53bf4bc165e9b","unresolved":false,"context_lines":[{"line_number":1258,"context_line":"                                   hash_algorithm\u003dhash_algorithm)"},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"        (data, token) \u003d self._fetch_parse_revocation_list()"},{"line_number":1261,"context_line":"        token_hash \u003d cms.cms_hash_token(token, mode\u003dhash_algorithm)"},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"        self.assertEqual(hash_algorithm, data[\u0027hash_algorithm\u0027])"},{"line_number":1264,"context_line":"        self.assertEqual(token_hash, data[\u0027revoked\u0027][0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAW3%2F%2F%2FjI%3D","line":1261,"updated":"2014-04-09 00:19:19.000000000","message":"Same here.","commit_id":"ae4bbf5f5c210463d597c60259216a96a72b98ac"}],"keystone/token/controllers.py":[{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"8302dd620cbadf09dd64dd970b5fcd6c8b58d5ab","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        data \u003d {"},{"line_number":433,"context_line":"            \u0027revoked\u0027: tokens"},{"line_number":434,"context_line":"        }"},{"line_number":435,"context_line":"        if CONF.token.hash_algorithm:"},{"line_number":436,"context_line":"            data[\u0027hash_algorithm\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":437,"context_line":"        json_data \u003d json.dumps(data)"},{"line_number":438,"context_line":"        signed_text \u003d cms.cms_sign_text(json_data,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F92Jc%3D","line":435,"updated":"2014-04-01 17:42:49.000000000","message":"Why not always add the algorithm.  Hving MD5 in there won\u0027t break anything, and it can be a check on the AT-M side to know that we have an upgraded server.","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1993b5257db5c8766a5feb4b4fd5c148b442cece","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        data \u003d {"},{"line_number":433,"context_line":"            \u0027revoked\u0027: tokens"},{"line_number":434,"context_line":"        }"},{"line_number":435,"context_line":"        if CONF.token.hash_algorithm:"},{"line_number":436,"context_line":"            data[\u0027hash_algorithm\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":437,"context_line":"        json_data \u003d json.dumps(data)"},{"line_number":438,"context_line":"        signed_text \u003d cms.cms_sign_text(json_data,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F9ipo%3D","line":435,"in_reply_to":"AAAAWH%2F92Jc%3D","updated":"2014-04-03 22:28:05.000000000","message":"Done","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"}],"keystone/token/core.py":[{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"bd48033e8fa7cd2460b1a037dd736ba10662f0ad","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self._get_token.invalidate(self, token_id)"},{"line_number":260,"context_line":"        self.token_provider_api.invalidate_individual_token_cache(token_id)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    @versionutils.deprecated(versionutils.deprecated.ICEHOUSE, remove_in\u003d +1)"},{"line_number":263,"context_line":"    def list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":264,"context_line":"                    consumer_id\u003dNone):"},{"line_number":265,"context_line":"        \"\"\"Returns a list of current token_id\u0027s for a user"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2Fx%2BY%3D","line":262,"updated":"2014-03-13 21:08:40.000000000","message":"Why the additional space here?  All of the existing uses of remove_in don\u0027t have a space like this.","commit_id":"acb3dc48a08e15edbfc4a7d64f4cd5e401368668"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"a8d9f26e6aa628185ae969978d31747cbb59d0ef","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self._get_token.invalidate(self, token_id)"},{"line_number":260,"context_line":"        self.token_provider_api.invalidate_individual_token_cache(token_id)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    @versionutils.deprecated(versionutils.deprecated.ICEHOUSE, remove_in\u003d +1)"},{"line_number":263,"context_line":"    def list_tokens(self, user_id, tenant_id\u003dNone, trust_id\u003dNone,"},{"line_number":264,"context_line":"                    consumer_id\u003dNone):"},{"line_number":265,"context_line":"        \"\"\"Returns a list of current token_id\u0027s for a user"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2Fx5o%3D","line":262,"in_reply_to":"AAAAWH%2F%2Fx%2BY%3D","updated":"2014-03-13 21:14:05.000000000","message":"Done","commit_id":"acb3dc48a08e15edbfc4a7d64f4cd5e401368668"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"8302dd620cbadf09dd64dd970b5fcd6c8b58d5ab","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                  existing hash)."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        args \u003d {}"},{"line_number":126,"context_line":"        if CONF.token.hash_algorithm:"},{"line_number":127,"context_line":"            args[\u0027mode\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":128,"context_line":"        return cms.cms_hash_token(token_id, **args)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F92JE%3D","line":126,"updated":"2014-04-01 17:42:49.000000000","message":"Instead, make CONF.token.hash_algorithm  always exist and default to MD5.","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1993b5257db5c8766a5feb4b4fd5c148b442cece","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                  existing hash)."},{"line_number":124,"context_line":"        \"\"\""},{"line_number":125,"context_line":"        args \u003d {}"},{"line_number":126,"context_line":"        if CONF.token.hash_algorithm:"},{"line_number":127,"context_line":"            args[\u0027mode\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":128,"context_line":"        return cms.cms_hash_token(token_id, **args)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F9ipg%3D","line":126,"in_reply_to":"AAAAWH%2F92JE%3D","updated":"2014-04-03 22:28:05.000000000","message":"Done","commit_id":"04c74b30d25e3a02aa25b30d1b6145574dbd9c06"}],"keystone/token/providers/common.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"831363c4c42540f6a3c93aba7994d0af50c1d956","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    \u0027id\u0027: metadata_ref[\u0027trust_id\u0027]"},{"line_number":83,"context_line":"                                    }"},{"line_number":84,"context_line":"        o[\u0027access\u0027].setdefault(\u0027metadata\u0027, {})"},{"line_number":85,"context_line":"        o[\u0027access\u0027][\u0027metadata\u0027][\u0027hash_algorithm\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":86,"context_line":"        return o"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FVvc%3D","line":85,"updated":"2014-03-18 14:29:21.000000000","message":"why is this necessary?","commit_id":"2ea401f7474bd125ce06a9c1da798f5a8f9d219e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"e69a0c7cf0a039739fad692dd6fcd7d4eb67a510","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                                    \u0027id\u0027: metadata_ref[\u0027trust_id\u0027]"},{"line_number":83,"context_line":"                                    }"},{"line_number":84,"context_line":"        o[\u0027access\u0027].setdefault(\u0027metadata\u0027, {})"},{"line_number":85,"context_line":"        o[\u0027access\u0027][\u0027metadata\u0027][\u0027hash_algorithm\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":86,"context_line":"        return o"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FI8Q%3D","line":85,"in_reply_to":"AAAAWH%2F%2FVvc%3D","updated":"2014-03-19 23:57:43.000000000","message":"Dolph - Adam, Jamie and I were discussing this in irc... they suggested that th auth_token middleware should reject tokens that don\u0027t use the expected hash algorithm, so I thought I\u0027d at least try it out.","commit_id":"2ea401f7474bd125ce06a9c1da798f5a8f9d219e"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"5b39f22f9fd693b2ee92d58a08eeb1c6dd39f5a7","unresolved":false,"context_lines":[{"line_number":83,"context_line":"                                    }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        o[\u0027access\u0027].setdefault(\u0027metadata\u0027, {})"},{"line_number":86,"context_line":"        o[\u0027access\u0027][\u0027metadata\u0027][\u0027hash_algorithm\u0027] \u003d CONF.token.hash_algorithm"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        return o"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAW3%2F%2F%2BmU%3D","line":86,"updated":"2014-04-09 05:33:32.000000000","message":"I think we may need to update identity-api spec with this information.","commit_id":"ae4bbf5f5c210463d597c60259216a96a72b98ac"}]}
