)]}'
{"keystoneclient/contrib/auth/v3/saml2.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"41f6b2d05412f7a03734da9e5e0e1bd4fb4fd9bf","unresolved":false,"context_lines":[{"line_number":569,"context_line":"        except etree.XMLSyntaxError as e:"},{"line_number":570,"context_line":"            msg \u003d (\"Error parsing XML returned from \""},{"line_number":571,"context_line":"                   \"the ADFS Identity Provider, reason: %s\" % e)"},{"line_number":572,"context_line":"            raise exceptions.AuthorizationFailure(msg)"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"    def _prepare_sp_request(self):"},{"line_number":575,"context_line":"        \"\"\"Prepare ADFS Security Token to be sent to the SP."}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_c00db241","line":572,"updated":"2014-08-04 16:49:44.000000000","message":"raising AuthorizationFailure is a good choice here?\nI didn\u0027t find anything more appropriate but...","commit_id":"f125e2433002a9ab848d70215eaea472e8dbda00"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"41f6b2d05412f7a03734da9e5e0e1bd4fb4fd9bf","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        if response.status_code not in (self.HTTP_MOVED_TEMPORARILY,"},{"line_number":618,"context_line":"                                        self.HTTP_OK):"},{"line_number":619,"context_line":"            raise exceptions.InvalidResponse(response\u003dresponse)"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"    def _access_service_provider(self, session):"},{"line_number":622,"context_line":"        \"\"\"Access protected endpoint and fetch unscoped token."},{"line_number":623,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_3b2f7f8a","line":620,"updated":"2014-08-04 16:49:44.000000000","message":"this is an only place where i raise InvalidResponse - maybe raising AuthorizationFailure everywhere is more logical as cli will simply catch one exception and present the exception\u0027s message to the user?","commit_id":"f125e2433002a9ab848d70215eaea472e8dbda00"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"41f6b2d05412f7a03734da9e5e0e1bd4fb4fd9bf","unresolved":false,"context_lines":[{"line_number":652,"context_line":"        self._send_service_provider_assertion(session)"},{"line_number":653,"context_line":"        self._access_service_provider(session)"},{"line_number":654,"context_line":"        return (self.authenticated_response.headers[\u0027X-Subject-Token\u0027],"},{"line_number":655,"context_line":"                self.authenticated_response.json()[\u0027token\u0027])"},{"line_number":656,"context_line":""},{"line_number":657,"context_line":"    def get_auth_ref(self, session, **kwargs):"},{"line_number":658,"context_line":"        token, token_json \u003d self._get_unscoped_token(session)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_3be21f30","line":655,"updated":"2014-08-04 16:49:44.000000000","message":"self.authenticated_response is saved within _access_service_provider(self, session), and I don\u0027t even check for  the status code. Maybe checking for a status codes at the earlies possible state is better rather than waiting (although I think this is more coherent with Python\u0027s philospohy  EAFP: https://docs.python.org/2/glossary.html#term-eafp )","commit_id":"f125e2433002a9ab848d70215eaea472e8dbda00"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class _FederationBasePlugin(v3.AuthConstructor):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    HTTP_MOVED_TEMPORARILY \u003d 302"},{"line_number":28,"context_line":"    HTTP_OK \u003d 200"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @staticmethod"},{"line_number":31,"context_line":"    def _first(_list):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_3997e53b","line":28,"updated":"2014-09-11 15:10:32.000000000","message":"not used?","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":25,"context_line":"class _FederationBasePlugin(v3.AuthConstructor):"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    HTTP_MOVED_TEMPORARILY \u003d 302"},{"line_number":28,"context_line":"    HTTP_OK \u003d 200"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @staticmethod"},{"line_number":31,"context_line":"    def _first(_list):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_4dc85ca8","line":28,"in_reply_to":"fa98f980_3997e53b","updated":"2014-09-11 18:37:49.000000000","message":"removed this line","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        relay_state \u003d self.saml2_authn_request.xpath("},{"line_number":266,"context_line":"            self.ECP_RELAY_STATE, namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":267,"context_line":"        self.relay_state \u003d _FederationBasePlugin._first(relay_state)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        sp_response_consumer_url \u003d self.saml2_authn_request.xpath("},{"line_number":270,"context_line":"            self.ECP_SERVICE_PROVIDER_CONSUMER_URL,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_f989dd26","line":267,"updated":"2014-09-11 15:10:32.000000000","message":"keep this as self._first()","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        relay_state \u003d self.saml2_authn_request.xpath("},{"line_number":266,"context_line":"            self.ECP_RELAY_STATE, namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":267,"context_line":"        self.relay_state \u003d _FederationBasePlugin._first(relay_state)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        sp_response_consumer_url \u003d self.saml2_authn_request.xpath("},{"line_number":270,"context_line":"            self.ECP_SERVICE_PROVIDER_CONSUMER_URL,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_6dcd20b7","line":267,"in_reply_to":"fa98f980_f989dd26","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        sp_response_consumer_url \u003d self.saml2_authn_request.xpath("},{"line_number":270,"context_line":"            self.ECP_SERVICE_PROVIDER_CONSUMER_URL,"},{"line_number":271,"context_line":"            namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":272,"context_line":"        self.sp_response_consumer_url \u003d _FederationBasePlugin._first("},{"line_number":273,"context_line":"            sp_response_consumer_url)"},{"line_number":274,"context_line":"        return False"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_198f812b","line":272,"updated":"2014-09-11 15:10:32.000000000","message":"keep this as self._first()","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        sp_response_consumer_url \u003d self.saml2_authn_request.xpath("},{"line_number":270,"context_line":"            self.ECP_SERVICE_PROVIDER_CONSUMER_URL,"},{"line_number":271,"context_line":"            namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":272,"context_line":"        self.sp_response_consumer_url \u003d _FederationBasePlugin._first("},{"line_number":273,"context_line":"            sp_response_consumer_url)"},{"line_number":274,"context_line":"        return False"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_8dc5e48f","line":272,"in_reply_to":"fa98f980_198f812b","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":298,"context_line":"            self.ECP_IDP_CONSUMER_URL,"},{"line_number":299,"context_line":"            namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.idp_response_consumer_url \u003d _FederationBasePlugin._first("},{"line_number":302,"context_line":"            idp_response_consumer_url)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self._check_consumer_urls(session, self.idp_response_consumer_url,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_997a9122","line":301,"updated":"2014-09-11 15:10:32.000000000","message":"keep this as self._first()","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":298,"context_line":"            self.ECP_IDP_CONSUMER_URL,"},{"line_number":299,"context_line":"            namespaces\u003dself.ECP_SAML2_NAMESPACES)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"        self.idp_response_consumer_url \u003d _FederationBasePlugin._first("},{"line_number":302,"context_line":"            idp_response_consumer_url)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        self._check_consumer_urls(session, self.idp_response_consumer_url,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_adc2a882","line":301,"in_reply_to":"fa98f980_997a9122","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":449,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":450,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":451,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_1967814e","line":448,"updated":"2014-09-11 15:10:32.000000000","message":"already defined in SAMLUnscoped","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":464,"context_line":"                            \u0027/t:RequestSecurityTokenResponseCollection\u0027"},{"line_number":465,"context_line":"                            \u0027/t:RequestSecurityTokenResponse\u0027)"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"    def __init__(self, auth_url,"},{"line_number":468,"context_line":"                 identity_provider,"},{"line_number":469,"context_line":"                 identity_provider_url,"},{"line_number":470,"context_line":"                 service_provider_endpoint,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_598669dc","line":467,"updated":"2014-09-11 15:10:32.000000000","message":"this is the exact same as the one in SAMLUnscoped","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":498,"context_line":"        \"\"\""},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"        super(ADFSUnscopedToken, self).__init__(auth_url\u003dauth_url, **kwargs)"},{"line_number":501,"context_line":"        self.identity_provider \u003d identity_provider"},{"line_number":502,"context_line":"        self.identity_provider_url \u003d identity_provider_url"},{"line_number":503,"context_line":"        self.service_provider_endpoint \u003d service_provider_endpoint"},{"line_number":504,"context_line":"        self.username, self.password \u003d username, password"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_9924510e","line":501,"updated":"2014-09-11 15:10:32.000000000","message":"these are the exact same options as SAMLAssertion, maybe move these into _BaseFederationPlugin too? \n\nMaybe rename _BaseFederationPlugin to _SAMLBasedPlugin? (seems like ADFS is just SAML with extra stuff)","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":504,"context_line":"        self.username, self.password \u003d username, password"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    @classmethod"},{"line_number":507,"context_line":"    def get_options(cls):"},{"line_number":508,"context_line":"        options \u003d super(ADFSUnscopedToken, cls).get_options()"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"        options.extend(["}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_3981a5c3","line":507,"updated":"2014-09-11 15:10:32.000000000","message":"this method is the exact same as the one in SAMLUnscoped","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        \"\"\""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        NAMESPACES \u003d {"},{"line_number":574,"context_line":"            \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"},{"line_number":575,"context_line":"            \u0027a\u0027: \u0027http://www.w3.org/2005/08/addressing\u0027,"},{"line_number":576,"context_line":"            \u0027u\u0027: (\u0027http://docs.oasis-open.org/wss/2004/01/oasis-200401-\u0027"},{"line_number":577,"context_line":"                  \u0027wss-wssecurity-utility-1.0.xsd\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_b9f91550","line":574,"updated":"2014-09-11 15:10:32.000000000","message":"all of this is at line 452 already","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":571,"context_line":"        \"\"\""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"        NAMESPACES \u003d {"},{"line_number":574,"context_line":"            \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"},{"line_number":575,"context_line":"            \u0027a\u0027: \u0027http://www.w3.org/2005/08/addressing\u0027,"},{"line_number":576,"context_line":"            \u0027u\u0027: (\u0027http://docs.oasis-open.org/wss/2004/01/oasis-200401-\u0027"},{"line_number":577,"context_line":"                  \u0027wss-wssecurity-utility-1.0.xsd\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_8d4c0444","line":574,"in_reply_to":"fa98f980_b9f91550","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        \"\"\""},{"line_number":774,"context_line":"        assertion \u003d self.adfs_token.xpath("},{"line_number":775,"context_line":"            self.ADFS_ASSERTION_XPATH, namespaces\u003dself.ADFS_TOKEN_NAMESPACES)"},{"line_number":776,"context_line":"        assertion \u003d _FederationBasePlugin._first(assertion)"},{"line_number":777,"context_line":"        assertion \u003d self.xml_to_str(assertion)"},{"line_number":778,"context_line":"        # FIXME(marek-denis) Ideally no string replacement should occur."},{"line_number":779,"context_line":"        # Unfortunately lxml doesn\u0027t allow for namespaces changing in-place and"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_d9709942","line":776,"updated":"2014-09-11 15:10:32.000000000","message":"keep this as self._first()","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":773,"context_line":"        \"\"\""},{"line_number":774,"context_line":"        assertion \u003d self.adfs_token.xpath("},{"line_number":775,"context_line":"            self.ADFS_ASSERTION_XPATH, namespaces\u003dself.ADFS_TOKEN_NAMESPACES)"},{"line_number":776,"context_line":"        assertion \u003d _FederationBasePlugin._first(assertion)"},{"line_number":777,"context_line":"        assertion \u003d self.xml_to_str(assertion)"},{"line_number":778,"context_line":"        # FIXME(marek-denis) Ideally no string replacement should occur."},{"line_number":779,"context_line":"        # Unfortunately lxml doesn\u0027t allow for namespaces changing in-place and"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_8d73247f","line":776,"in_reply_to":"fa98f980_d9709942","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"664664b7cb02fdbfd79832784d54055a9857200b","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":446,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":447,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":448,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_47eaf00f","line":445,"updated":"2014-09-11 22:58:34.000000000","message":"this was already defined previously, moving it to base plugin","commit_id":"52dfd024165e9d2cfa9bc763a6884a85c0c2ee53"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"664664b7cb02fdbfd79832784d54055a9857200b","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        :type identity_provider_url: string"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        :param service_provider_endpoint: Endpoint where an assertion is being"},{"line_number":486,"context_line":"            sent, for instance ``https://host.domain/Shibboleth.sso/ADFS``"},{"line_number":487,"context_line":"        :type service_provider_endpoint: string"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        :param username: User\u0027s login"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_cb17d4ec","line":486,"updated":"2014-09-11 22:58:34.000000000","message":"ahh, darn, this isn\u0027t the same as the regular SAML one, it has an extra parameter for SP endpoint.","commit_id":"52dfd024165e9d2cfa9bc763a6884a85c0c2ee53"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"664664b7cb02fdbfd79832784d54055a9857200b","unresolved":false,"context_lines":[{"line_number":765,"context_line":"            self.ADFS_ASSERTION_XPATH, namespaces\u003dself.ADFS_TOKEN_NAMESPACES)"},{"line_number":766,"context_line":"        assertion \u003d self._first(assertion)"},{"line_number":767,"context_line":"        assertion \u003d self.xml_to_str(assertion)"},{"line_number":768,"context_line":"        # FIXME(marek-denis) Ideally no string replacement should occur."},{"line_number":769,"context_line":"        # Unfortunately lxml doesn\u0027t allow for namespaces changing in-place and"},{"line_number":770,"context_line":"        # probably the only solution good for now is to build the assertion"},{"line_number":771,"context_line":"        # from scratch and reuse values from the adfs security token."}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_87c77897","line":768,"updated":"2014-09-11 22:58:34.000000000","message":"change to TODO","commit_id":"52dfd024165e9d2cfa9bc763a6884a85c0c2ee53"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"664664b7cb02fdbfd79832784d54055a9857200b","unresolved":false,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    def get_auth_ref(self, session, **kwargs):"},{"line_number":872,"context_line":"        token, token_json \u003d self._get_unscoped_token(session)"},{"line_number":873,"context_line":"        return acceptable.AccessInfoV3(token, **token_json)"},{"line_number":874,"context_line":""},{"line_number":875,"context_line":""},{"line_number":876,"context_line":"class Saml2ScopedTokenMethod(v3.TokenMethod):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa98f980_e7c12481","line":873,"updated":"2014-09-11 22:58:34.000000000","message":"acceptable?\n\ni think this should be access.AccessInfoV3()","commit_id":"52dfd024165e9d2cfa9bc763a6884a85c0c2ee53"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6a1c9b4bbfa5208e3b40d45e6999e83e993830f6","unresolved":false,"context_lines":[{"line_number":463,"context_line":"    def __init__(self, auth_url,"},{"line_number":464,"context_line":"                 identity_provider,"},{"line_number":465,"context_line":"                 identity_provider_url,"},{"line_number":466,"context_line":"                 service_provider_endpoint,"},{"line_number":467,"context_line":"                 username, password,"},{"line_number":468,"context_line":"                 **kwargs):"},{"line_number":469,"context_line":"        \"\"\"Constructor for ``ADFSUnscopedToken``."}],"source_content_type":"text/x-python","patch_set":12,"id":"fa98f980_52055078","line":466,"updated":"2014-09-11 23:03:22.000000000","message":"use all 80 characters","commit_id":"2e5d150e6491a43e8a1b86689b2f4fbb94405818"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"3f6bf9df20b14077ab4f357e41343d95b36dd88b","unresolved":false,"context_lines":[{"line_number":496,"context_line":"        self.username, self.password \u003d username, password"},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    @classmethod"},{"line_number":499,"context_line":"    def get_options(cls):"},{"line_number":500,"context_line":"        options \u003d super(ADFSUnscopedToken, cls).get_options()"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":"        options.extend(["}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_d45be551","line":499,"updated":"2014-09-12 10:27:41.000000000","message":"Following your suggestions, I moved shared options set to the upper class and left only ADFS specific one.","commit_id":"ab17c8a209eb90557569f68fee297059cf67aa2d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8906401a7a7f096305d3a8c1dbcc276f69db1d9c","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        return url"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @classmethod"},{"line_number":66,"context_line":"    def get_options(cls):"},{"line_number":67,"context_line":"        options \u003d super(_BaseSAMLPlugin, cls).get_options()"},{"line_number":68,"context_line":"        options.extend(["},{"line_number":69,"context_line":"            cfg.StrOpt(\u0027identity-provider\u0027, help\u003d\"Identity Provider\u0027s name\"),"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_668a8465","line":66,"updated":"2014-09-12 13:31:59.000000000","message":"Nice!","commit_id":"f466c1f2b04e57be6f99ccb545195ce0d496e4b6"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"8f09ad54e360ed90ea7836447f5178a7f7ba8e73","unresolved":false,"context_lines":[{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    @property"},{"line_number":509,"context_line":"    def _uuid4(self):"},{"line_number":510,"context_line":"        return str(uuid.uuid4())"},{"line_number":511,"context_line":""},{"line_number":512,"context_line":"    def _cookies(self, session):"},{"line_number":513,"context_line":"        \"\"\"Check if cookie jar is not empty."}],"source_content_type":"text/x-python","patch_set":15,"id":"da9df570_eee35603","line":510,"updated":"2014-09-21 00:44:07.000000000","message":"This is really not useful, just call uuid.uuid4() where you\u0027re using it.","commit_id":"cbe8c0a178fd589a06657846157518b3ac70aada"}],"keystoneclient/tests/v3/examples/xml/ADFS_RequestSecurityTokenResponse.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                                \u003csaml:AttributeValue\u003eCERN"},{"line_number":49,"context_line":" Users\u003c/saml:AttributeValue\u003e"},{"line_number":50,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":51,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Group\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":52,"context_line":"                                \u003csaml:AttributeValue\u003eDomain"},{"line_number":53,"context_line":" Users\u003c/saml:AttributeValue\u003e"},{"line_number":54,"context_line":"                                \u003csaml:AttributeValue\u003eoccupants-bldg-31\u003c/saml:AttributeValue\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_b903d50e","line":51,"updated":"2014-09-11 15:10:32.000000000","message":"we probably don\u0027t need these many groups for an example assertion, just leave 5-10 attribute values","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                                \u003csaml:AttributeValue\u003eCERN"},{"line_number":49,"context_line":" Users\u003c/saml:AttributeValue\u003e"},{"line_number":50,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":51,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Group\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":52,"context_line":"                                \u003csaml:AttributeValue\u003eDomain"},{"line_number":53,"context_line":" Users\u003c/saml:AttributeValue\u003e"},{"line_number":54,"context_line":"                                \u003csaml:AttributeValue\u003eoccupants-bldg-31\u003c/saml:AttributeValue\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_6d852006","line":51,"in_reply_to":"fa98f980_b903d50e","updated":"2014-09-11 18:37:49.000000000","message":"i got rid of a bunch of these","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":220,"context_line":" Kamil Denis\u003c/saml:AttributeValue\u003e"},{"line_number":221,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":222,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"MobileNumber\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":223,"context_line":"                                \u003csaml:AttributeValue\u003e+41764877039\u003c/saml:AttributeValue\u003e"},{"line_number":224,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":225,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Building\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":226,"context_line":"                                \u003csaml:AttributeValue\u003e31"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_a41ac86c","line":223,"updated":"2014-09-11 15:10:32.000000000","message":"this seems like sensitive info?","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":220,"context_line":" Kamil Denis\u003c/saml:AttributeValue\u003e"},{"line_number":221,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":222,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"MobileNumber\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":223,"context_line":"                                \u003csaml:AttributeValue\u003e+41764877039\u003c/saml:AttributeValue\u003e"},{"line_number":224,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":225,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Building\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":226,"context_line":"                                \u003csaml:AttributeValue\u003e31"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_2d96b83f","line":223,"in_reply_to":"fa98f980_a41ac86c","updated":"2014-09-11 18:37:49.000000000","message":"replaced with dummy info","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Lastname\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":234,"context_line":"                                \u003csaml:AttributeValue\u003eDenis\u003c/saml:AttributeValue\u003e"},{"line_number":235,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":236,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Department\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":237,"context_line":"                                \u003csaml:AttributeValue\u003eIT/OIS\u003c/saml:AttributeValue\u003e"},{"line_number":238,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":239,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"HomeInstitute\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_4423dca6","line":236,"updated":"2014-09-11 15:10:32.000000000","message":"again, we probably don\u0027t need *all* of these","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Lastname\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":234,"context_line":"                                \u003csaml:AttributeValue\u003eDenis\u003c/saml:AttributeValue\u003e"},{"line_number":235,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":236,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"Department\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"},{"line_number":237,"context_line":"                                \u003csaml:AttributeValue\u003eIT/OIS\u003c/saml:AttributeValue\u003e"},{"line_number":238,"context_line":"                            \u003c/saml:Attribute\u003e"},{"line_number":239,"context_line":"                            \u003csaml:Attribute AttributeName\u003d\"HomeInstitute\" AttributeNamespace\u003d\"http://schemas.xmlsoap.org/claims\"\u003e"}],"source_content_type":"application/xml","patch_set":10,"id":"fa98f980_ed703042","line":236,"in_reply_to":"fa98f980_4423dca6","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"}],"keystoneclient/tests/v3/examples/xml/ADFS_request_security_token.xml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"fa98f980_44f67cfa","updated":"2014-09-11 15:10:32.000000000","message":"AFAICT this is not being used in tests","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"664664b7cb02fdbfd79832784d54055a9857200b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"fa98f980_0beb9c13","updated":"2014-09-11 22:58:34.000000000","message":"this file isn\u0027t used","commit_id":"52dfd024165e9d2cfa9bc763a6884a85c0c2ee53"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5825c75d345c807d08e9efde17d7542bd1d19ce5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"fa98f980_521390b7","updated":"2014-09-11 23:11:06.000000000","message":"do we need this? it\u0027s not being used.","commit_id":"ab17c8a209eb90557569f68fee297059cf67aa2d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"589017b806ef8c718d3978485aa8c9fe2f1db703","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"fa98f980_a36b22f0","updated":"2014-09-16 19:15:45.000000000","message":"delete this file since it\u0027s not being used?","commit_id":"f466c1f2b04e57be6f99ccb545195ce0d496e4b6"}],"keystoneclient/tests/v3/test_auth_saml2.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def make_oneline(s):"},{"line_number":34,"context_line":"    return etree.tostring(etree.XML(s)).replace(b\u0027\\n\u0027, b\u0027\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class AuthenticateviaSAML2Tests(utils.TestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_6442a03f","line":34,"updated":"2014-09-11 15:10:32.000000000","message":"use os.newline or whatever it\u0027s called, instead of \\n","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def make_oneline(s):"},{"line_number":34,"context_line":"    return etree.tostring(etree.XML(s)).replace(b\u0027\\n\u0027, b\u0027\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class AuthenticateviaSAML2Tests(utils.TestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_5097133a","line":34,"in_reply_to":"fa98f980_6442a03f","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":390,"context_line":"class AuthenticateviaADFSTests(utils.TestCase):"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    GROUP \u003d \u0027auth\u0027"},{"line_number":393,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_90789bc5","line":393,"updated":"2014-09-11 18:37:49.000000000","message":"removed this since it wasn\u0027t used","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":390,"context_line":"class AuthenticateviaADFSTests(utils.TestCase):"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"    GROUP \u003d \u0027auth\u0027"},{"line_number":393,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_64738080","line":393,"updated":"2014-09-11 15:10:32.000000000","message":"the variables defined here, from line 393 to line 406 are aleady defined in saml2.py, and it\u0027s already imported here, you could just reference saml2.ADFS.DEFAULT_ADF_TOKEN_EXPIRATION, just a thought.","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":392,"context_line":"    GROUP \u003d \u0027auth\u0027"},{"line_number":393,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":397,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":398,"context_line":"    ASSERTION_NAMESPACES \u003d {"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_104cab9d","line":395,"updated":"2014-09-11 18:37:49.000000000","message":"removed since wasn\u0027t used","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    DEFAULT_ADFS_TOKEN_EXPIRATION \u003d 120"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":397,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":398,"context_line":"    ASSERTION_NAMESPACES \u003d {"},{"line_number":399,"context_line":"        \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_6b5a682b","line":396,"updated":"2014-09-11 18:37:49.000000000","message":"removed since wasn\u0027t used","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":397,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":398,"context_line":"    ASSERTION_NAMESPACES \u003d {"},{"line_number":399,"context_line":"        \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"},{"line_number":400,"context_line":"        \u0027t\u0027: \u0027http://docs.oasis-open.org/ws-sx/ws-trust/200512\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_8b422c3c","line":397,"updated":"2014-09-11 18:37:49.000000000","message":"removed since wasn\u0027t used","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":395,"context_line":"    PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":396,"context_line":"    HEADER_SOAP \u003d {\"Content-Type\": \"application/soap+xml; charset\u003dutf-8\"}"},{"line_number":397,"context_line":"    HEADER_X_FORM \u003d {\"Content-Type\": \"application/x-www-form-urlencoded\"}"},{"line_number":398,"context_line":"    ASSERTION_NAMESPACES \u003d {"},{"line_number":399,"context_line":"        \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"},{"line_number":400,"context_line":"        \u0027t\u0027: \u0027http://docs.oasis-open.org/ws-sx/ws-trust/200512\u0027"},{"line_number":401,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_eb457843","line":398,"updated":"2014-09-11 18:37:49.000000000","message":"now references the one from saml.UnscopedADFS","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        \u0027s\u0027: \u0027http://www.w3.org/2003/05/soap-envelope\u0027,"},{"line_number":400,"context_line":"        \u0027t\u0027: \u0027http://docs.oasis-open.org/ws-sx/ws-trust/200512\u0027"},{"line_number":401,"context_line":"    }"},{"line_number":402,"context_line":"    ADFS_ASSERTION_XPATH \u003d (\u0027/s:Envelope/s:Body\u0027"},{"line_number":403,"context_line":"                            \u0027/t:RequestSecurityTokenResponseCollection\u0027"},{"line_number":404,"context_line":"                            \u0027/t:RequestSecurityTokenResponse\u0027)"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_0b763ca4","line":402,"updated":"2014-09-11 18:37:49.000000000","message":"now references the one from saml.UnscopedADFS","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    TO_XPATH \u003d (\u0027/s:Envelope/s:Header\u0027"},{"line_number":429,"context_line":"                \u0027/a:To\u0027)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def make_oneline(self, s):"},{"line_number":432,"context_line":"        return etree.tostring(etree.XML(s)).replace(\u0027\\n\u0027, \u0027\u0027)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_246c18d0","line":431,"updated":"2014-09-11 15:10:32.000000000","message":"you just defined this at the module level","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    TO_XPATH \u003d (\u0027/s:Envelope/s:Header\u0027"},{"line_number":429,"context_line":"                \u0027/a:To\u0027)"},{"line_number":430,"context_line":""},{"line_number":431,"context_line":"    def make_oneline(self, s):"},{"line_number":432,"context_line":"        return etree.tostring(etree.XML(s)).replace(\u0027\\n\u0027, \u0027\u0027)"},{"line_number":433,"context_line":""},{"line_number":434,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_709c175e","line":431,"in_reply_to":"fa98f980_246c18d0","updated":"2014-09-11 18:37:49.000000000","message":"removing this","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        self.IDENTITY_PROVIDER \u003d \u0027adfs\u0027"},{"line_number":447,"context_line":"        self.IDENTITY_PROVIDER_URL \u003d (\u0027http://adfs.local/adfs/service/trust/13\u0027"},{"line_number":448,"context_line":"                                      \u0027/usernamemixed\u0027)"},{"line_number":449,"context_line":"        self.PROTOCOL \u003d \u0027saml2\u0027"},{"line_number":450,"context_line":"        self.FEDERATION_AUTH_URL \u003d \u0027%s/%s\u0027 % ("},{"line_number":451,"context_line":"            self.TEST_URL,"},{"line_number":452,"context_line":"            \u0027OS-FEDERATION/identity_providers/adfs/protocols/saml2/auth\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_5042b368","line":449,"updated":"2014-09-11 18:37:49.000000000","message":"removed since wasn\u0027t used","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6d1d0088c0e980e4975b44bd01424eb5cd1755c1","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            \u0027ADFS_RequestSecurityTokenResponse.xml\u0027)"},{"line_number":463,"context_line":"        self.ADFS_FAULT \u003d self._load_xml(\u0027ADFS_fault.xml\u0027)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def _load_xml(self, filename):"},{"line_number":466,"context_line":"        full_path \u003d XMLDIR + filename"},{"line_number":467,"context_line":"        with open(full_path, \u0027rb\u0027) as f:"},{"line_number":468,"context_line":"            return make_oneline(f.read())"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_24a33801","line":465,"updated":"2014-09-11 15:10:32.000000000","message":"place this at the module level?","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9c9b81c48494e4e86c32cce8f8a17a3e9d7a1d3d","unresolved":false,"context_lines":[{"line_number":462,"context_line":"            \u0027ADFS_RequestSecurityTokenResponse.xml\u0027)"},{"line_number":463,"context_line":"        self.ADFS_FAULT \u003d self._load_xml(\u0027ADFS_fault.xml\u0027)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"    def _load_xml(self, filename):"},{"line_number":466,"context_line":"        full_path \u003d XMLDIR + filename"},{"line_number":467,"context_line":"        with open(full_path, \u0027rb\u0027) as f:"},{"line_number":468,"context_line":"            return make_oneline(f.read())"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa98f980_b0ae7f2c","line":465,"in_reply_to":"fa98f980_24a33801","updated":"2014-09-11 18:37:49.000000000","message":"Done","commit_id":"4e47950d8d18e39458ff2459b30421a8a8a39937"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"3f6bf9df20b14077ab4f357e41343d95b36dd88b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def make_oneline(s):"},{"line_number":34,"context_line":"    return etree.tostring(etree.XML(s)).replace(os.linesep, b\u0027\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _load_xml(filename):"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa98f980_cf0c2bef","line":34,"updated":"2014-09-12 10:27:41.000000000","message":"i reverted to b\u0027\\n\u0027 for now as it was failing py33 tests.","commit_id":"ab17c8a209eb90557569f68fee297059cf67aa2d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8906401a7a7f096305d3a8c1dbcc276f69db1d9c","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def make_oneline(s):"},{"line_number":34,"context_line":"    return etree.tostring(etree.XML(s)).replace(b\u0027\\n\u0027, b\u0027\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _load_xml(filename):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa98f980_a6d62c4d","line":34,"updated":"2014-09-12 13:31:59.000000000","message":"oops, thanks for reverting","commit_id":"f466c1f2b04e57be6f99ccb545195ce0d496e4b6"}]}
