🐛 huge CORS bug

This commit is contained in:
EntireTwix 2021-04-07 12:49:15 -07:00
parent 56bae9cf8a
commit 4ffc88b54d
2 changed files with 18 additions and 13 deletions

View file

@ -37,7 +37,7 @@ public:
{
auto resp = HttpResponse::newHttpResponse();
auto handlerInfo = app().getHandlersInfo();
resp->setBody("<h1>ALL FUNCTIONS (that have args) ARE EXPECTING JSON AS DATA TYPE</h1><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/close (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password</p><blockquote><p>Closes and Saves the server.</p></blockquote><h2><br />/BankF/user (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of the user being added</p><p><span style=\"background-color: #808080;\">&nbsp;init_pass&nbsp;</span> - initial password for the user being added</p><blockquote><p>Adds a user to the bank</p></blockquote><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/user (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of the user being added</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password required to add user with balance</p><p><span style=\"background-color: #808080;\">&nbsp;init_bal&nbsp;</span> - initial balance for user being added</p><p><span style=\"background-color: #808080;\">&nbsp;init_pass&nbsp;</span> - initial password for user being added</p><blockquote><p>Adds a user with initial balance</p></blockquote><h2><br />/BankF/sendfunds (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;a_name&nbsp;</span> - sender's name</p><p><span style=\"background-color: #808080;\">&nbsp;b_name&nbsp;</span> - reciever's name</p><p><span style=\"background-color: #808080;\">&nbsp;amount&nbsp;</span> - amount being sent</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of sender</p><blockquote><p>Sends money from one user to another</p></blockquote><h2><br />/BankF/changepass (PATCH)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user's password being changes</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of user being changed</p><p><span style=\"background-color: #808080;\">&nbsp;new_pass&nbsp;</span> - new password to replace the current user's password</p><blockquote><p>&nbsp;Changes password of a user</p></blockquote><p>&nbsp;</p><h2>/BankF/{<span style=\"color: #339966;\">name</span>}/bal (PATCH)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - the name of the user being set</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - the admin password required</p><p><span style=\"background-color: #808080;\">&nbsp;amount&nbsp;</span> - the new balance of the user</p><blockquote><p>Sets the balance of a user</p></blockquote><h2>&nbsp;</h2><h2>/BankF/help (GET)</h2><blockquote><p>the page you're looking at right now!</p></blockquote><h2><br />/BankF/vpass (GET)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being verified</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password being verified</p><blockquote><p>returns 0 or 1 based on if [attempt] is equal to the password of the user [name]. The intended usage for this function is for connected services</p></blockquote><h2><br />/BankF/contains/{<span style=\"color: #339966;\">name</span>} (GET)</h2><blockquote><p>returns a 0 or 1 based on if the bank contains the user</p></blockquote><p>&nbsp;</p><h2>/BankF/{<span style=\"color: #339966;\">name</span>}/bal (GET)</h2><blockquote><p>returns the balance of a given user's name, if -1 that means the user does not exist</p></blockquote><h2><br />/BankF/user (DELETE)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being deleted</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of user being deleted</p><blockquote><p>Deletes a user with the password of the user as verification</p></blockquote><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/user (DELETE)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being deleted</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password</p><blockquote><p>Deletes a user with admin password as verification</p></blockquote>");
resp->setBody("<h1>ALL FUNCTIONS (that have args) ARE EXPECTING JSON AS DATA TYPE</h1><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/close (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password</p><blockquote><p>Closes and Saves the server.</p></blockquote><h2><br />/BankF/user (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of the user being added</p><p><span style=\"background-color: #808080;\">&nbsp;init_pass&nbsp;</span> - initial password for the user being added</p><blockquote><p>Adds a user to the bank</p></blockquote><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/user (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of the user being added</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password required to add user with balance</p><p><span style=\"background-color: #808080;\">&nbsp;init_bal&nbsp;</span> - initial balance for user being added</p><p><span style=\"background-color: #808080;\">&nbsp;init_pass&nbsp;</span> - initial password for user being added</p><blockquote><p>Adds a user with initial balance</p></blockquote><h2><br />/BankF/sendfunds (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;a_name&nbsp;</span> - sender's name</p><p><span style=\"background-color: #808080;\">&nbsp;b_name&nbsp;</span> - reciever's name</p><p><span style=\"background-color: #808080;\">&nbsp;amount&nbsp;</span> - amount being sent</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of sender</p><blockquote><p>Sends money from one user to another</p></blockquote><h2><br />/BankF/changepass (PATCH)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user's password being changes</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of user being changed</p><p><span style=\"background-color: #808080;\">&nbsp;new_pass&nbsp;</span> - new password to replace the current user's password</p><blockquote><p>&nbsp;Changes password of a user</p></blockquote><p>&nbsp;</p><h2>/BankF/{<span style=\"color: #339966;\">name</span>}/bal (PATCH)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - the name of the user being set</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - the admin password required</p><p><span style=\"background-color: #808080;\">&nbsp;amount&nbsp;</span> - the new balance of the user</p><blockquote><p>Sets the balance of a user</p></blockquote><h2>&nbsp;</h2><h2>/BankF/help (GET)</h2><blockquote><p>the page you're looking at right now!</p></blockquote><h2><br />/BankF/vpass (POST)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being verified</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password being verified</p><blockquote><p>returns 0 or 1 based on if [attempt] is equal to the password of the user [name]. The intended usage for this function is for connected services</p></blockquote><h2><br />/BankF/contains/{<span style=\"color: #339966;\">name</span>} (GET)</h2><blockquote><p>returns a 0 or 1 based on if the bank contains the user</p></blockquote><p>&nbsp;</p><h2>/BankF/{<span style=\"color: #339966;\">name</span>}/bal (GET)</h2><blockquote><p>returns the balance of a given user's name, if -1 that means the user does not exist</p></blockquote><h2><br />/BankF/user (DELETE)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being deleted</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - password of user being deleted</p><blockquote><p>Deletes a user with the password of the user as verification</p></blockquote><h2><br />/BankF/<span style=\"color: #993300;\">admin</span>/user (DELETE)</h2><p><span style=\"background-color: #808080;\">&nbsp;name&nbsp;</span> - name of user being deleted</p><p><span style=\"background-color: #808080;\">&nbsp;attempt&nbsp;</span> - admin password</p><blockquote><p>Deletes a user with admin password as verification</p></blockquote>");
resp->setExpiredTime(0);
callback(resp);
}
@ -108,20 +108,20 @@ public:
}
METHOD_LIST_BEGIN
METHOD_ADD(BankF::Close, "/admin/close", Post);
METHOD_ADD(BankF::AddUser, "/user", Post);
METHOD_ADD(BankF::AdminAddUser, "/admin/user", Post);
METHOD_ADD(BankF::SendFunds, "/sendfunds", Post);
METHOD_ADD(BankF::Close, "/admin/close", Post, Options);
METHOD_ADD(BankF::AddUser, "/user", Post, Options);
METHOD_ADD(BankF::AdminAddUser, "/admin/user", Post, Options);
METHOD_ADD(BankF::SendFunds, "/sendfunds", Post, Options);
METHOD_ADD(BankF::ChangePassword, "/changepass", Patch);
METHOD_ADD(BankF::SetBal, "/{name}/bal", Patch);
METHOD_ADD(BankF::ChangePassword, "/changepass", Patch, Options);
METHOD_ADD(BankF::SetBal, "/{name}/bal", Patch, Options);
METHOD_ADD(BankF::Help, "/help", Get);
METHOD_ADD(BankF::VerifyPassword, "/vpass", Get);
METHOD_ADD(BankF::Contains, "/contains/{name}", Get);
METHOD_ADD(BankF::GetBal, "/{name}/bal", Get);
METHOD_ADD(BankF::Help, "/help", Get, Options);
METHOD_ADD(BankF::VerifyPassword, "/vpass", Post, Options);
METHOD_ADD(BankF::Contains, "/contains/{name}", Get, Options);
METHOD_ADD(BankF::GetBal, "/{name}/bal", Get, Options);
METHOD_ADD(BankF::DelUser, "/user", Delete);
METHOD_ADD(BankF::AdminDelUser, "/admin/user", Delete);
METHOD_ADD(BankF::DelUser, "/user", Delete, Options);
METHOD_ADD(BankF::AdminDelUser, "/admin/user", Delete, Options);
METHOD_LIST_END
};

View file

@ -40,6 +40,11 @@ int main(int argc, char **argv)
}
auto API = std::make_shared<BankF>();
app().registerPostHandlingAdvice(
[](const drogon::HttpRequestPtr &req, const drogon::HttpResponsePtr &resp) {
//LOG_DEBUG << "postHandling1";
resp->addHeader("Access-Control-Allow-Origin", "*");
});
app().addListener("0.0.0.0", 80).registerController(API).setThreadNum(std::stoul(argv[3])).run();
return 0;