Header files of the WebServer entity in the Secure Login example

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