def get_oauth_token(self): url = self.os_oauth_url + "?response_type=token&client_id=openshift-challenging-client" if self.use_auth: if self.username and self.password: logger.debug("using basic authentication") r = self.get( url, with_auth=False, allow_redirects=False, username=self.username, password=self.password, ) elif self.use_kerberos: logger.debug("using kerberos authentication") if self.kerberos_keytab: if not self.kerberos_principal: raise OsbsAuthException( "You need to provide kerberos principal along " "with the keytab path.") kerberos_ccache_init(self.kerberos_principal, self.kerberos_keytab, ccache_file=self.kerberos_ccache) r = self.get(url, with_auth=False, allow_redirects=False, kerberos_auth=True) else: logger.debug("using identity authentication") r = self.get(url, with_auth=False, allow_redirects=False) else: logger.debug( "getting token without any authentication (fingers crossed)") r = self.get(url, with_auth=False, allow_redirects=False) try: redir_url = r.headers['location'] except KeyError: logger.error( "[%s] 'Location' header is missing in response, cannot retrieve token", r.status_code) return "" parsed_url = urlparse(redir_url) fragment = parsed_url.fragment parsed_fragment = parse_qs(fragment) self.token = parsed_fragment['access_token'][0] return self.token
def get_oauth_token(self): url = self.os_oauth_url + "?response_type=token&client_id=openshift-challenging-client" if self.use_auth: if self.username and self.password: logger.info("using basic authentication") r = self._get(url, with_auth=False, allow_redirects=False, username=self.username, password=self.password) elif self.use_kerberos: logger.info("using kerberos authentication") if self.kerberos_keytab: if not self.kerberos_principal: raise OsbsAuthException("You need to provide kerberos principal along " "with the keytab path.") kerberos_ccache_init(self.kerberos_principal, self.kerberos_keytab, ccache_file=self.kerberos_ccache) r = self._get(url, with_auth=False, allow_redirects=False, kerberos_auth=True) else: logger.info("using identity authentication") r = self._get(url, with_auth=False, allow_redirects=False) else: logger.info("getting token without any authentication (fingers crossed)") r = self._get(url, with_auth=False, allow_redirects=False) try: redir_url = r.headers['location'] except KeyError: logger.error("[%s] 'Location' header is missing in response, cannot retrieve token", r.status_code) return "" parsed_url = urlparse.urlparse(redir_url) fragment = parsed_url.fragment logger.debug("fragment is '%s'", fragment) parsed_fragment = urlparse.parse_qs(fragment) self.token = parsed_fragment['access_token'][0] return self.token