#include "PassphrasePage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 7 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" enum PageState { PAGE_ASK_PASSPHRASE, PAGE_SHOW_PASSPHRASE }; PassphrasePage::PassphrasePage(Session* arg): SessionHTTPRequestHandler(arg) { } void PassphrasePage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); #line 15 "I:\\Code\\C++\\Eigene_Projekte\\Gradido_LoginServer\\src\\cpsp\\passphrase.cpsp" PageState state = PAGE_ASK_PASSPHRASE; bool hasErrors = mSession->errorCount() > 0; // save login cookie, because maybe we've get an new session response.addCookie(mSession->getLoginCookie()); if (!form.empty()) { auto registerKeyChoice = form.get("passphrase", ""); std::string oldPassphrase = ""; if (registerKeyChoice == "no") { auto oldPassphrase = form.get("passphrase-existing", ""); if (oldPassphrase != "" && User::validatePassphrase(oldPassphrase)) { // passphrase is valid mSession->setPassphrase(oldPassphrase); mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); state = PAGE_SHOW_PASSPHRASE; } else { mSession->addError(new Error("Merkspruch", "Dieser Merkspruch ist ungültig, bitte überprüfen oder neu generieren (lassen).")); } } else if (registerKeyChoice == "yes") { mSession->generatePassphrase(); } } if(mSession->getSessionState() == SESSION_STATE_PASSPHRASE_GENERATED) { state = PAGE_SHOW_PASSPHRASE; mSession->updateState(SESSION_STATE_PASSPHRASE_SHOWN); } std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "