authhandler.h
#pragma once
#include "i_loginreader.h"
#include <CivetServer.h>
class AuthHandler : public CivetHandler
{
public:
AuthHandler(ipc::ILoginFormReaderPtr loginReader);
~AuthHandler() override = default;
bool handleGet(CivetServer *server, struct mg_connection *conn) override;
private:
ipc::ILoginFormReaderPtr m_comExecutor;
};
authresulthandler.h
#pragma once
#include "i_resultreader.h"
#include <CivetServer.h>
class AuthResultHandler : public CivetHandler
{
public:
AuthResultHandler(ipc::IResultFormReaderPtr reader);
~AuthResultHandler() override = default;
bool handleGet(CivetServer *server, struct mg_connection *conn) override;
private:
std::string
GetParam(struct mg_connection *conn, const std::string &key) const;
private:
ipc::IResultFormReaderPtr m_reader;
};
general.h
#pragma once
namespace app {
constexpr const char *AppTag = "[WebServer] ";
}
i_loginreader.h
#pragma once
#include <memory>
#include <string>
namespace ipc {
struct ILoginFormReader
{
virtual ~ILoginFormReader() = default;
virtual bool OpenLoginStream() = 0;
virtual bool ReadLoginLine(std::string &htmlLine, bool &isEof) = 0;
virtual bool DisposeLogin() = 0;
};
using ILoginFormReaderPtr = std::shared_ptr<ILoginFormReader>;
} // namespace ipc
i_resultreader.h
#pragma once
#include <memory>
#include <string>
namespace ipc {
struct IResultFormReader
{
virtual ~IResultFormReader() = default;
virtual bool OpenResultStream(
const std::string &userName,
const std::string &password,
const std::string &cryptoB) = 0;
virtual bool ReadResultLine(std::string &htmlLine, bool &isEof) = 0;
virtual bool DisposeResult() = 0;
};
using IResultFormReaderPtr = std::shared_ptr<IResultFormReader>;
} // namespace ipc
kos_connector.h
#pragma once
#include "i_loginreader.h"
#include "i_resultreader.h"
#include <auth_service/ILoginForm.idl.h>
#include <auth_service/ILoginResultForm.idl.h>
#include <coresrv/nk/transport-kos.h>
#include <coresrv/sl/sl_api.h>
#include <memory>
class KosConnector : public ipc::ILoginFormReader, public ipc::IResultFormReader
{
public:
KosConnector() = default;
// Open IPC connection
bool Connect();
// ILoginFormReader impl.
bool OpenLoginStream() override;
bool ReadLoginLine(std::string &htmlLine, bool &isEof) override;
bool DisposeLogin() override;
// IResultFormReader
bool OpenResultStream(
const std::string &userName,
const std::string &password,
const std::string &cryptoB) override;
bool ReadResultLine(std::string &htmlLine, bool &isEof) override;
bool DisposeResult() override;
private:
NkKosTransport m_transport;
auth_service_ILoginForm_proxy m_loginFormProxy;
auth_service_ILoginResultForm_proxy m_loginResultFormProxy;
};
using KosConnectorPtr = std::shared_ptr<KosConnector>;
log.h
#pragma once
#include "CivetServer.h"
namespace log
{
// Log output of the WEB-server handler parameters
void Log(const mg_connection *conn);
} // namespace log
Page top