)]}'
{"keystonemiddleware/s3_token.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"947006a0ba28fa0d43a69d09a41277d2c2ce0864","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # where to find the auth service (we use this to validate tokens)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        auth_host \u003d conf.get(\u0027auth_host\u0027, \u0027\u0027)"},{"line_number":113,"context_line":"        if \u0027:\u0027 in auth_host and not auth_host.startswith(\u0027[\u0027):"},{"line_number":114,"context_line":"            # Note(timburke) it is an IPv6 address, so it needs to be"},{"line_number":115,"context_line":"            # wrapped with \u0027[]\u0027 to generate a valid IPv6 URL, based on"},{"line_number":116,"context_line":"            # http://www.ietf.org/rfc/rfc2732.txt"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_2b29aa9e","line":113,"updated":"2016-03-31 20:11:22.000000000","message":"This will always be a IPv6 address because it should one of the two:\n\n    auth_host \u003d FF01:0:0:0:0:0:0:FB\n    auth_host \u003d 127.0.0.1 \n\nWould we ever run into the case where we have something like:\n\n    auth_host \u003d http://example.com:35357/\n\nThat would break this, right? Or do we need a more strict IPv6 check?","commit_id":"7d5c7988fa30b108b591396cba869acebef731f2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b3ff1b0256613a7059fc5ff74b1325a808d3e8de","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # where to find the auth service (we use this to validate tokens)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        auth_host \u003d conf.get(\u0027auth_host\u0027, \u0027\u0027)"},{"line_number":113,"context_line":"        if \u0027:\u0027 in auth_host and not auth_host.startswith(\u0027[\u0027):"},{"line_number":114,"context_line":"            # Note(timburke) it is an IPv6 address, so it needs to be"},{"line_number":115,"context_line":"            # wrapped with \u0027[]\u0027 to generate a valid IPv6 URL, based on"},{"line_number":116,"context_line":"            # http://www.ietf.org/rfc/rfc2732.txt"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba0121b8_014ac525","line":113,"in_reply_to":"ba0121b8_2b29aa9e","updated":"2016-03-31 20:24:11.000000000","message":"I expect auth_host to be one of:\n\n- a hostname,\n- an IPv4 address,\n- an IPv6 address, or\n- a bracket-wrapped IPv6 address (because the deployer noticed and worked around the previous lack of support for raw IPv6 addresses).\n\nProviding a full URI would break for a variety of other reasons. Whether self._request_uri comes out as \u0027://http://example.com:35357/:35357\u0027 or \u0027://[http://example.com:35357/]:35357\u0027, it\u0027s not going to be usable.\n\nFWIW, the same lack of input validation is present in keystonemiddleware/auth_token/_auth.py","commit_id":"7d5c7988fa30b108b591396cba869acebef731f2"}]}
