added syslog errors
This commit is contained in:
1 parent
b3736a5124
commit
fb961af71c
9 files changed
+65
No files matched your search
@@ -2,6 +2,7 @@
|
||||
#include "../colors.h"
|
||||
#include "../includes.hpp"
|
||||
#include <jwt-cpp/jwt.h>
|
||||
#include <syslog.h>
|
||||
|
||||
// function for authorization users
|
||||
void auth(const httplib::Request &request, httplib::Response &response) {
|
||||
@@ -9,16 +10,19 @@ void auth(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_header("Access-Control-Allow-Origin", "*");
|
||||
if (request.body.empty()) {
|
||||
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no body in auth request");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
|
||||
if (json_body["username"] == nullptr) {
|
||||
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no username in auth request");
|
||||
return;
|
||||
}
|
||||
if (json_body["password"] == nullptr) {
|
||||
response.set_content(AUTH_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no password in auth request");
|
||||
return;
|
||||
}
|
||||
const std::string request_username = json_body["username"];
|
||||
@@ -37,6 +41,7 @@ void auth(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "auth request rejected");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -48,5 +53,6 @@ void auth(const httplib::Request &request, httplib::Response &response) {
|
||||
|
||||
std::stringstream response_json;
|
||||
response_json << R"({"token":")" << token << "\"}";
|
||||
syslog(LOG_INFO, "auth request success");
|
||||
response.set_content(response_json.str(), JSON_TYPE);
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "auth.hpp"
|
||||
#include <jwt-cpp/jwt.h>
|
||||
#include "../includes.hpp"
|
||||
#include <syslog.h>
|
||||
|
||||
// function for verify tokens
|
||||
bool verify_auth(const std::string &token) {
|
||||
@@ -17,6 +18,7 @@ bool verify_auth(const std::string &token) {
|
||||
return true;
|
||||
} catch (const std::system_error &e) {
|
||||
std::cout << "Verification error: " << e.what() << std::endl;
|
||||
syslog(LOG_ERR, "token verification error");
|
||||
return false;
|
||||
}
|
||||
catch (...) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "../colors.h"
|
||||
#include "../includes.hpp"
|
||||
#include "../auth/auth.hpp"
|
||||
#include <syslog.h>
|
||||
|
||||
// function for access or reject authorization
|
||||
void user_access(const httplib::Request &request, httplib::Response &response) {
|
||||
@@ -9,17 +10,21 @@ void user_access(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_header("Access-Control-Allow-Origin", "*");
|
||||
if (request.body.empty()) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access request body is emty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
|
||||
if (json_body["token"] == nullptr) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no token in acces request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(R"({"access":"reject"})", JSON_TYPE);
|
||||
syslog(LOG_ERR, "access rejected");
|
||||
return;
|
||||
}
|
||||
response.set_content(R"({"access":"success"})", JSON_TYPE);
|
||||
syslog(LOG_INFO, "access success");
|
||||
}
|
||||
@@ -24,6 +24,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
|
||||
if (request.body.empty()) {
|
||||
response.set_content(ADD_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "add user request body is empty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
@@ -31,20 +32,24 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
|
||||
if (json_body["token"] == nullptr) {
|
||||
response.set_content(ADD_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no token in add user request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in add user request");
|
||||
return;
|
||||
}
|
||||
if (json_body["username"] == nullptr) {
|
||||
response.set_content(ADD_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no username in add user request");
|
||||
return;
|
||||
}
|
||||
if (json_body["password"] == nullptr) {
|
||||
response.set_content(ADD_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no password in add user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -52,6 +57,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in add user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -67,10 +73,12 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in add user request");
|
||||
return;
|
||||
}
|
||||
if (response_user_data["is_superuser"] != "1") {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in add user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -80,6 +88,7 @@ void add_user(const httplib::Request &request, httplib::Response &response) {
|
||||
for (nlohmann::json user: all_users) {
|
||||
if ((user["username"] == username)) {
|
||||
response.set_content(R"({"status":"user already exists"})", JSON_TYPE);
|
||||
syslog(LOG_ERR, "user already exists in add user request");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ void change_password(const httplib::Request &request, httplib::Response &respons
|
||||
CHANGE_PASSWORD_REQUIRED_STRING,
|
||||
JSON_TYPE
|
||||
);
|
||||
syslog(LOG_ERR, "body is empty in change password request");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
@@ -23,21 +24,25 @@ void change_password(const httplib::Request &request, httplib::Response &respons
|
||||
CHANGE_PASSWORD_REQUIRED_STRING,
|
||||
JSON_TYPE
|
||||
);
|
||||
syslog(LOG_ERR, "no token in change password request");
|
||||
return;
|
||||
}
|
||||
if ((json_body["userid"] == nullptr) && (json_body["old_password"] == nullptr)) {
|
||||
response.set_content(
|
||||
CHANGE_PASSWORD_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no old password is change password request");
|
||||
return;
|
||||
}
|
||||
if (json_body["new_password"] == nullptr) {
|
||||
response.set_content(CHANGE_PASSWORD_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no new password in change password request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change password request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -50,6 +55,7 @@ void change_password(const httplib::Request &request, httplib::Response &respons
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change password request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -68,10 +74,12 @@ void change_password(const httplib::Request &request, httplib::Response &respons
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change password request");
|
||||
return;
|
||||
}
|
||||
if (response_user_data["is_superuser"] != "1") {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change password request");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -93,12 +101,16 @@ void change_password(const httplib::Request &request, httplib::Response &respons
|
||||
if ((all_user["id"] == changepassuserid) && (all_user["password"] == old_password)) {
|
||||
all_user["password"] = new_password;
|
||||
found = true;
|
||||
std::stringstream syslogstring;
|
||||
syslogstring << "password changed for user [" << all_user["username"] << "]";
|
||||
syslog(LOG_INFO, syslogstring.str().c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
|
||||
syslog(LOG_ERR, "can't find this user in change password request");
|
||||
return;
|
||||
}
|
||||
std::ofstream usersfilew("users.json");
|
||||
|
||||
@@ -13,6 +13,7 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_content(
|
||||
CHANGE_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "change user request body is empty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
@@ -22,16 +23,19 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
|
||||
CHANGE_USER_REQUIRED_STRING,
|
||||
JSON_TYPE
|
||||
);
|
||||
syslog(LOG_ERR, "no token in change user request");
|
||||
return;
|
||||
}
|
||||
if ((json_body["userid"] == nullptr) && (json_body["old_password"] == nullptr)) {
|
||||
response.set_content(
|
||||
CHANGE_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no old_password in change user request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -39,6 +43,7 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -57,10 +62,12 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change user request");
|
||||
return;
|
||||
}
|
||||
if (response_user_data["is_superuser"] != "1") {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in change user request");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -85,12 +92,16 @@ void change_user(const httplib::Request &request, httplib::Response &response) {
|
||||
if ((all_user["id"] == changeusruserid)) {
|
||||
if (json_body["username"] != nullptr) { all_user["username"] = json_body["username"]; }
|
||||
found = true;
|
||||
std::stringstream syslogstring;
|
||||
syslogstring << "userdata changed for user [" << all_user["username"] << "]";
|
||||
syslog(LOG_INFO, syslogstring.str().c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
|
||||
syslog(LOG_ERR, "can't find this user in change user request");
|
||||
return;
|
||||
}
|
||||
std::ofstream usersfilew("users.json");
|
||||
|
||||
@@ -13,6 +13,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_content(
|
||||
DELETE_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "delete user request body is empty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
@@ -21,10 +22,12 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_content(
|
||||
DELETE_USER_REQUIRED_STRING,
|
||||
JSON_TYPE);
|
||||
syslog(LOG_ERR, "no token in delete user request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in delete user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -32,6 +35,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in delete user request");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -50,10 +54,12 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in delete user request");
|
||||
return;
|
||||
}
|
||||
if (response_user_data["is_superuser"] != "1") {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in delete user request");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -71,6 +77,7 @@ void delete_user(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (!found) {
|
||||
response.set_content(R"({"status":"can't find this user"})", JSON_TYPE);
|
||||
syslog(LOG_ERR, "can't find this user in delete user request");
|
||||
return;
|
||||
}
|
||||
std::ofstream usersfilew("users.json");
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "../includes.hpp"
|
||||
#include "../auth/auth.hpp"
|
||||
#include <jwt-cpp/jwt.h>
|
||||
#include <syslog.h>
|
||||
|
||||
// function for get all users data without password
|
||||
void get_all_users(const httplib::Request &request, httplib::Response &response) {
|
||||
@@ -10,22 +11,26 @@ void get_all_users(const httplib::Request &request, httplib::Response &response)
|
||||
response.set_header("Access-Control-Allow-Origin", "*");
|
||||
if (request.body.empty()) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "get all users request body is empty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
|
||||
if (json_body["token"] == nullptr) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no token in get all users");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get all user request");
|
||||
return;
|
||||
}
|
||||
jwt::decoded_jwt<jwt::traits::kazuho_picojson> decoded_token = jwt::decode(json_body["token"]);
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get all user request");
|
||||
return;
|
||||
}
|
||||
std::ifstream usersfile("users.json");
|
||||
@@ -40,10 +45,12 @@ void get_all_users(const httplib::Request &request, httplib::Response &response)
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get all user request");
|
||||
return;
|
||||
}
|
||||
if (response_user_data["is_superuser"] != "1") {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get all user request");
|
||||
return;
|
||||
}
|
||||
response.set_content(all_users.dump(), JSON_TYPE);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include "../includes.hpp"
|
||||
#include "../auth/auth.hpp"
|
||||
#include <jwt-cpp/jwt.h>
|
||||
#include <syslog.h>
|
||||
|
||||
// function for get user data without password
|
||||
void get_user(const httplib::Request &request, httplib::Response &response) {
|
||||
@@ -10,22 +11,26 @@ void get_user(const httplib::Request &request, httplib::Response &response) {
|
||||
response.set_header("Access-Control-Allow-Origin", "*");
|
||||
if (request.body.empty()) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "get user request body is empty");
|
||||
return;
|
||||
}
|
||||
nlohmann::json json_body = nlohmann::json::parse(request.body);
|
||||
|
||||
if (json_body["token"] == nullptr) {
|
||||
response.set_content(ACCESS_REQUIRED_STRING, JSON_TYPE);
|
||||
syslog(LOG_ERR, "no token in get user request");
|
||||
return;
|
||||
}
|
||||
if (!verify_auth(json_body["token"])) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get user request");
|
||||
return;
|
||||
}
|
||||
jwt::decoded_jwt<jwt::traits::kazuho_picojson> decoded_token = jwt::decode(json_body["token"]);
|
||||
std::string userid = decoded_token.get_payload_json()["userId"].to_str();
|
||||
if (userid.empty()) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get user request");
|
||||
return;
|
||||
}
|
||||
std::ifstream usersfile("users.json");
|
||||
@@ -40,6 +45,7 @@ void get_user(const httplib::Request &request, httplib::Response &response) {
|
||||
}
|
||||
if (response_user_data == nullptr) {
|
||||
response.set_content(STRING403, JSON_TYPE);
|
||||
syslog(LOG_ERR, "access reject in get user request");
|
||||
return;
|
||||
}
|
||||
response_user_data.erase("password");
|
||||
|
||||
Reference in new issue
Block a user