)]}'
{"keystone/middleware/auth_token.py":[{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"e15d3726f40f6ebcc8d0aea00e299aed97097d34","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            if \"timeout\" in cache.set.func_code.co_varnames:"},{"line_number":341,"context_line":"                # swift cache"},{"line_number":342,"context_line":"                expires \u003d self._convert_date(claims[\u0027expires\u0027])"},{"line_number":343,"context_line":"                claims \u003d self._protect_claims(token, claims)"},{"line_number":344,"context_line":"                cache.set(key, (claims, expires, valid),"},{"line_number":345,"context_line":"                             timeout\u003dexpires - time.time())"},{"line_number":346,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F7SA%3D","line":343,"updated":"2011-12-21 20:26:12.000000000","message":"I don\u0027t understand why you broke this out. It doesn\u0027t look like any of the inputs./outputs change between the earlier call and the later call?","commit_id":"8f63921f4ddb8fbbfc0edcd573f59cdcc3042da5"},{"author":{"_account_id":5,"name":"Ziad Sawalha","email":"ziad.sawalha@rackspace.com","username":"ziad-sawalha"},"change_message_id":"caafb0ef440f25926822abf94fae4ec9fbacdd11","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            if \"timeout\" in cache.set.func_code.co_varnames:"},{"line_number":341,"context_line":"                # swift cache"},{"line_number":342,"context_line":"                expires \u003d self._convert_date(claims[\u0027expires\u0027])"},{"line_number":343,"context_line":"                claims \u003d self._protect_claims(token, claims)"},{"line_number":344,"context_line":"                cache.set(key, (claims, expires, valid),"},{"line_number":345,"context_line":"                             timeout\u003dexpires - time.time())"},{"line_number":346,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F6l0%3D","line":343,"in_reply_to":"AAAAC3%2F%2F7PM%3D","updated":"2011-12-26 15:59:56.000000000","message":"Got it.","commit_id":"8f63921f4ddb8fbbfc0edcd573f59cdcc3042da5"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e7e441d80209478b9f3a368670477676d4aedf68","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            if \"timeout\" in cache.set.func_code.co_varnames:"},{"line_number":341,"context_line":"                # swift cache"},{"line_number":342,"context_line":"                expires \u003d self._convert_date(claims[\u0027expires\u0027])"},{"line_number":343,"context_line":"                claims \u003d self._protect_claims(token, claims)"},{"line_number":344,"context_line":"                cache.set(key, (claims, expires, valid),"},{"line_number":345,"context_line":"                             timeout\u003dexpires - time.time())"},{"line_number":346,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F7PY%3D","line":343,"in_reply_to":"AAAAC3%2F%2F7SA%3D","updated":"2011-12-21 21:46:06.000000000","message":"+1","commit_id":"8f63921f4ddb8fbbfc0edcd573f59cdcc3042da5"},{"author":{"_account_id":154,"name":"Liem Nguyen","email":"liem.m.nguyen@hp.com","username":"liemmn"},"change_message_id":"c831072dd4ae72ac1dcb0cf3f09299d1bb41d5b4","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            if \"timeout\" in cache.set.func_code.co_varnames:"},{"line_number":341,"context_line":"                # swift cache"},{"line_number":342,"context_line":"                expires \u003d self._convert_date(claims[\u0027expires\u0027])"},{"line_number":343,"context_line":"                claims \u003d self._protect_claims(token, claims)"},{"line_number":344,"context_line":"                cache.set(key, (claims, expires, valid),"},{"line_number":345,"context_line":"                             timeout\u003dexpires - time.time())"},{"line_number":346,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F7PM%3D","line":343,"in_reply_to":"AAAAC3%2F%2F7SA%3D","updated":"2011-12-21 21:51:20.000000000","message":"It\u0027s because if the _protect_claims() call encrypts the data (which is intended to be used for), we cannot extract claims[\u0027expires\u0027] anymore (without having to decrypt).\n\nBTW, we noticed that the token info (value) stored in memcache is not encrypted, hence this can be a security hole.  So, we put in these place-holders.  Do you think this is something Keystone can benefit from?","commit_id":"8f63921f4ddb8fbbfc0edcd573f59cdcc3042da5"}]}
