stephb9959
2023-10-04 12:39:43 -07:00
parent 27f6d7c552
commit a951cb0549

View File

@@ -29,43 +29,44 @@ namespace OpenWifi {
if(Endpoint.Type=="orion") { if(Endpoint.Type=="orion") {
PoolEntry.set("radsecPoolType","orion"); PoolEntry.set("radsecPoolType","orion");
auto Servers = OpenRoaming_Orion()->GetServers(); auto Servers = OpenRoaming_Orion()->GetServers();
Poco::JSON::Object ServerDetails; Poco::JSON::Object AuthConfig;
ServerDetails.set("methodParameters", Poco::JSON::Array() ); AuthConfig.set("methodParameters", Poco::JSON::Array() );
ServerDetails.set("monitor", false ); AuthConfig.set("monitor", false );
ServerDetails.set("monitorMethod", "none" ); AuthConfig.set("monitorMethod", "none" );
ServerDetails.set("strategy","random"); AuthConfig.set("strategy","random");
Poco::JSON::Array ServerArray; Poco::JSON::Array ServerArray;
ProvObjects::GooglOrionAccountInfo OA; ProvObjects::GooglOrionAccountInfo OA;
StorageService()->OrionAccountsDB().GetRecord("id",Endpoint.RadsecServers[0].UseOpenRoamingAccount,OA); StorageService()->OrionAccountsDB().GetRecord("id",Endpoint.RadsecServers[0].UseOpenRoamingAccount,OA);
int i=1; int i=1;
for(const auto &Server:Servers) { for(const auto &Server:Servers) {
Poco::JSON::Object AuthConfig; Poco::JSON::Object InnerServer;
AuthConfig.set("allowSelfSigned", false); InnerServer.set("allowSelfSigned", false);
AuthConfig.set("ignore", false); InnerServer.set("ignore", false);
AuthConfig.set("name", fmt::format("Server {}",i)); InnerServer.set("name", fmt::format("Server {}",i));
AuthConfig.set("ip", Server.Hostname); InnerServer.set("ip", Server.Hostname);
AuthConfig.set("radsecPort", Server.Port); InnerServer.set("radsecPort", Server.Port);
AuthConfig.set("radsecCert", Utils::base64encode((const u_char *)OA.certificate.c_str(),OA.certificate.size())); InnerServer.set("radsecCert", Utils::base64encode((const u_char *)OA.certificate.c_str(),OA.certificate.size()));
AuthConfig.set("radsecKey", Utils::base64encode((const u_char *)OA.privateKey.c_str(),OA.privateKey.size())); InnerServer.set("radsecKey", Utils::base64encode((const u_char *)OA.privateKey.c_str(),OA.privateKey.size()));
Poco::JSON::Array CaCerts; Poco::JSON::Array CaCerts;
for(const auto &cert:OA.cacerts) { for(const auto &cert:OA.cacerts) {
CaCerts.add(Utils::base64encode((const u_char *)cert.c_str(),cert.size())); CaCerts.add(Utils::base64encode((const u_char *)cert.c_str(),cert.size()));
} }
AuthConfig.set("radsecCacerts", CaCerts); InnerServer.set("radsecCacerts", CaCerts);
AuthConfig.set("radsecSecret","radsec"); InnerServer.set("radsecSecret","radsec");
i++; i++;
ServerArray.add(AuthConfig); ServerArray.add(InnerServer);
} }
ServerDetails.set("servers",ServerArray); AuthConfig.set("servers",ServerArray);
RadiusPools.add(ServerDetails); PoolEntry.set("authConfig", AuthConfig);
RadiusPools.add(PoolEntry);
} else if(Endpoint.Type=="globalreach") { } else if(Endpoint.Type=="globalreach") {
PoolEntry.set("radsecPoolType","globalreach"); PoolEntry.set("radsecPoolType","globalreach");
auto Servers = OpenRoaming_GlobalReach()->GetServers(); auto Servers = OpenRoaming_GlobalReach()->GetServers();
Poco::JSON::Object ServerDetails; Poco::JSON::Object AuthConfig;
ServerDetails.set("methodParameters", Poco::JSON::Array() ); AuthConfig.set("methodParameters", Poco::JSON::Array() );
ServerDetails.set("monitor", false ); AuthConfig.set("monitor", false );
ServerDetails.set("monitorMethod", "none" ); AuthConfig.set("monitorMethod", "none" );
ServerDetails.set("strategy","random"); AuthConfig.set("strategy","random");
Poco::JSON::Array ServerArray; Poco::JSON::Array ServerArray;
ProvObjects::GLBLRCertificateInfo GRCertificate; ProvObjects::GLBLRCertificateInfo GRCertificate;
ProvObjects::GLBLRAccountInfo GRAccountInfo; ProvObjects::GLBLRAccountInfo GRAccountInfo;
@@ -73,25 +74,26 @@ namespace OpenWifi {
StorageService()->GLBLRAccountInfoDB().GetRecord("id",GRCertificate.accountId,GRAccountInfo); StorageService()->GLBLRAccountInfoDB().GetRecord("id",GRCertificate.accountId,GRAccountInfo);
int i=1; int i=1;
for(const auto &Server:Servers) { for(const auto &Server:Servers) {
Poco::JSON::Object AuthConfig; Poco::JSON::Object InnerServer;
AuthConfig.set("allowSelfSigned", false); InnerServer.set("allowSelfSigned", false);
AuthConfig.set("ignore", false); InnerServer.set("ignore", false);
AuthConfig.set("name", fmt::format("Server {}",i)); InnerServer.set("name", fmt::format("Server {}",i));
AuthConfig.set("ip", Server.Hostname); InnerServer.set("ip", Server.Hostname);
AuthConfig.set("radsecPort", Server.Port); InnerServer.set("radsecPort", Server.Port);
AuthConfig.set("radsecCert", Utils::base64encode((const u_char *)GRCertificate.certificate.c_str(),GRCertificate.certificate.size())); InnerServer.set("radsecCert", Utils::base64encode((const u_char *)GRCertificate.certificate.c_str(),GRCertificate.certificate.size()));
AuthConfig.set("radsecKey", Utils::base64encode((const u_char *)GRAccountInfo.CSRPrivateKey.c_str(),GRAccountInfo.CSRPrivateKey.size())); InnerServer.set("radsecKey", Utils::base64encode((const u_char *)GRAccountInfo.CSRPrivateKey.c_str(),GRAccountInfo.CSRPrivateKey.size()));
Poco::JSON::Array CaCerts; Poco::JSON::Array CaCerts;
for(const auto &cert:GRCertificate.certificateChain) { for(const auto &cert:GRCertificate.certificateChain) {
CaCerts.add(Utils::base64encode((const u_char *)cert.c_str(),cert.size())); CaCerts.add(Utils::base64encode((const u_char *)cert.c_str(),cert.size()));
} }
AuthConfig.set("radsecCacerts", CaCerts); InnerServer.set("radsecCacerts", CaCerts);
AuthConfig.set("radsecSecret","radsec"); InnerServer.set("radsecSecret","radsec");
i++; i++;
ServerArray.add(AuthConfig); ServerArray.add(InnerServer);
} }
ServerDetails.set("servers",ServerArray); AuthConfig.set("servers",ServerArray);
RadiusPools.add(ServerDetails); PoolEntry.set("authConfig", AuthConfig);
RadiusPools.add(PoolEntry);
} else if(Endpoint.Type=="radius") { } else if(Endpoint.Type=="radius") {
PoolEntry.set("radsecPoolType","generic"); PoolEntry.set("radsecPoolType","generic");
auto Servers = OpenRoaming_GlobalReach()->GetServers(); auto Servers = OpenRoaming_GlobalReach()->GetServers();