CLI printing of URL.

This commit is contained in:
Adam Ierymenko 2021-05-25 12:58:33 -04:00
parent 8bb5bc736d
commit 2c1d7f3dcc
No known key found for this signature in database
GPG Key ID: C8877CF2D7A5D7F3
3 changed files with 16 additions and 10 deletions

View File

@ -1331,6 +1331,9 @@ void EmbeddedNetworkController::_request(
member["lastAuthorizedCredential"] = autoAuthCredential;
}
const int64_t authenticationExpiryTime = member["authenticationExpiryTime"];
const std::string authenticationURL = member["authenticationURL"];
if (authorized) {
// Update version info and meta-data if authorized and if this is a genuine request
if (requestPacketId) {
@ -1357,18 +1360,12 @@ void EmbeddedNetworkController::_request(
}
}
const int64_t authenticationExpiryTime = member["authenticationExpiryTime"];
if ((authenticationExpiryTime >= 0)&&(authenticationExpiryTime < now)) {
const std::string authenticationURL = member["authenticationURL"];
if (authenticationURL.empty()) {
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, nullptr, 0);
return;
} else {
Dictionary<1024> authInfo;
Dictionary<1024> authInfo;
if (!authenticationURL.empty())
authInfo.add("aU", authenticationURL.c_str());
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, authInfo.data(), authInfo.sizeBytes());
return;
}
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, authInfo.data(), authInfo.sizeBytes());
return;
}
} else {
// If they are not authorized, STOP!

View File

@ -794,6 +794,14 @@ static int cli(int argc,char **argv)
OSUtils::jsonString(n["type"],"-").c_str(),
OSUtils::jsonString(n["portDeviceName"],"-").c_str(),
aa.c_str());
int64_t authenticationExpiryTime = n["authenticationExpiryTime"];
if (authenticationExpiryTime >= 0) {
if (n["status"] == "AUTHENTICATION_REQUIRED") {
printf(" SSO authentication required, URL: %s" ZT_EOL_S, OSUtils::jsonString(n["authenticationURL"], "(null)").c_str());
} else {
printf(" SSO authentication expires in %lld" ZT_EOL_S, (authenticationExpiryTime - OSUtils::now()) / 1000LL);
}
}
}
}
}

View File

@ -184,6 +184,7 @@ static void _networkToJson(nlohmann::json &nj,const ZT_VirtualNetworkConfig *nc,
case ZT_NETWORK_STATUS_NOT_FOUND: nstatus = "NOT_FOUND"; break;
case ZT_NETWORK_STATUS_PORT_ERROR: nstatus = "PORT_ERROR"; break;
case ZT_NETWORK_STATUS_CLIENT_TOO_OLD: nstatus = "CLIENT_TOO_OLD"; break;
case ZT_NETWORK_STATUS_AUTHENTICATION_REQUIRED: nstatus = "AUTHENTICATION_REQUIRED"; break;
}
switch(nc->type) {
case ZT_NETWORK_TYPE_PRIVATE: ntype = "PRIVATE"; break;