stephb9959
2022-11-07 14:56:01 -08:00
parent 9b5aa5dd5d
commit 6543f44eab
4 changed files with 1 additions and 20 deletions

2
build
View File

@@ -1 +1 @@
17
18

View File

@@ -10,30 +10,21 @@ namespace OpenWifi {
void RESTAPI_validate_apikey::DoGet() {
Poco::URI URI(Request->getURI());
auto Parameters = URI.getQueryParameters();
std::cout << __LINE__ << std::endl;
for(auto const &i:Parameters) {
std::cout << __LINE__ << std::endl;
if (i.first == "apikey") {
std::cout << __LINE__ << std::endl;
// can we find this token?
SecurityObjects::UserInfoAndPolicy SecObj;
bool Expired = false;
std::uint64_t expiresOn=0;
std::cout << __LINE__ << " > " << i.second << std::endl;
if (AuthService()->IsValidApiKey(i.second, SecObj.webtoken, SecObj.userinfo, Expired, expiresOn)) {
std::cout << __LINE__ << std::endl;
Poco::JSON::Object Answer;
SecObj.to_json(Answer);
Answer.set("expiresOn", expiresOn);
std::cout << __LINE__ << std::endl;
return ReturnObject(Answer);
}
std::cout << __LINE__ << std::endl;
return UnAuthorized(RESTAPI::Errors::ACCESS_DENIED);
}
std::cout << __LINE__ << std::endl;
}
std::cout << __LINE__ << std::endl;
return NotFound();
}

View File

@@ -81,9 +81,7 @@ namespace OpenWifi {
10000);
Poco::JSON::Object::Ptr Response;
std::cout << __LINE__ << std::endl;
auto StatusCode = Req.Do(Response);
std::cout << __LINE__ << std::endl;
if(StatusCode==Poco::Net::HTTPServerResponse::HTTP_GATEWAY_TIMEOUT) {
Contacted = false;
return false;
@@ -91,25 +89,18 @@ namespace OpenWifi {
Contacted = true;
if(StatusCode==Poco::Net::HTTPServerResponse::HTTP_OK) {
std::cout << __LINE__ << std::endl;
if(Response->has("tokenInfo") && Response->has("userInfo") && Response->has("expiresOn")) {
std::cout << __LINE__ << std::endl;
UInfo.from_json(Response);
Expired = false;
std::cout << __LINE__ << std::endl;
ApiKeyCache_.update(SessionToken, ApiKeyCacheEntry{ .UserInfo = UInfo, .ExpiresOn = Response->get("expiresOn")});
std::cout << __LINE__ << std::endl;
return true;
} else {
std::cout << __LINE__ << std::endl;
return false;
}
std::cout << __LINE__ << std::endl;
}
} catch (...) {
poco_error(Logger(),fmt::format("Failed to retrieve api key={} for TID={}", SessionToken, TID));
}
std::cout << __LINE__ << std::endl;
Expired = false;
return false;
}

View File

@@ -672,7 +672,6 @@ namespace OpenWifi {
return Allowed;
} else if(!Internal_ && Request->has("X-API-KEY")) {
SessionToken_ = Request->get("X-API-KEY", "");
std::cout << "SessionToken: " << SessionToken_ << std::endl;
#ifdef TIP_SECURITY_SERVICE
std::uint64_t expiresOn;
if (AuthService()->IsValidApiKey(SessionToken_, UserInfo_.webtoken, UserInfo_.userinfo, Expired, expiresOn)) {