Changeset - 456f0713a795
[Not reviewed]
0 1 0
Jan Kaluza - 10 years ago 2016-01-24 13:08:09
jkaluza@redhat.com
Fix crash from previous commit
1 file changed with 3 insertions and 2 deletions:
0 comments (0 inline, 0 general)
libtransport/OAuth2.cpp
Show inline comments
 
@@ -68,52 +68,53 @@ std::string OAuth2::generateAuthURL() {
 
	m_state = boost::lexical_cast<std::string>(uuid);
 
	url += "&state=" + Util::urlencode(m_state);
 

	
 
	return url;
 
}
 

	
 
std::string OAuth2::requestToken(const std::string &code, std::string &token, std::string &bot_token) {
 
	std::string url = m_tokenURL + "?";
 
	url += "client_id=" + Util::urlencode(m_clientId);
 
	url += "&client_secret=" + Util::urlencode(m_clientSecret);
 
	url += "&code=" + Util::urlencode(code);
 

	
 
	if (!m_redirectURL.empty()) {
 
		url += "&redirect_uri=" + Util::urlencode(m_redirectURL);
 
	}
 

	
 
	rapidjson::Document resp;
 
	HTTPRequest req(HTTPRequest::Get, url);
 
	if (!req.execute(resp)) {
 
		LOG4CXX_ERROR(logger, url);
 
		LOG4CXX_ERROR(logger, req.getError());
 
		return req.getError();
 
	}
 

	
 
	LOG4CXX_ERROR(logger, req.getRawData());
 
	rapidjson::Value& access_token = resp["access_token"];
 
	if (!access_token.IsString()) {
 
		LOG4CXX_ERROR(logger, "No 'access_token' object in the reply.");
 
		LOG4CXX_ERROR(logger, url);
 
		LOG4CXX_ERROR(logger, req.getRawData());
 
		return "No 'access_token' object in the reply.";
 
	}
 

	
 
	token = access_token.GetString();
 
	if (token.empty()) {
 
		LOG4CXX_ERROR(logger, "Empty 'access_token' object in the reply.");
 
		LOG4CXX_ERROR(logger, url);
 
		LOG4CXX_ERROR(logger, req.getRawData());
 
		return "Empty 'access_token' object in the reply.";
 
	}
 

	
 
	rapidjson::Value& bot = resp["bot"];
 
	if (bot.IsObject()) {
 
		rapidjson::Value& bot_access_token = resp["bot_access_token"];
 
		if (!bot_access_token.IsString()) {
 
		rapidjson::Value& bot_access_token = bot["bot_access_token"];
 
		if (bot_access_token.IsString()) {
 
			bot_token = bot_access_token.GetString();
 
		}
 
	}
 

	
 
	return "";
 
}
 

	
 
}
0 comments (0 inline, 0 general)