Loading src/auth.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ bool blogi::Auth::ldapLogin(const int tid,const char *username,const char *passw throw excep; } const char* sessid = nullptr; char sid[512],email[255],displayname[512]; BerElement* ber; char* dn; Loading Loading @@ -210,7 +209,8 @@ LDAPLOGINUSERFOUND: _dbconn[tid]->exec(&sql,res); }; _session->addSessionData(sid,"uid",ssid,strlen(ssid)+1); _session->addSessionData(ssid,"uid",sid,strlen(ssid)+1); _session->addSessionData(ssid,"username",username,strlen(ssid)+1); std::cout << "User : " << sid << " are logged in" << std::endl; Loading @@ -221,12 +221,12 @@ LDAPLOGINUSERFOUND: } #endif bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid){ bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid){ libhttppp::HttpCookie cookie; cookie.parse(curreq); try{ std::string storeid; _session->getSessionData(sessionid,"uid",storeid); _session->getSessionData(ssid,"uid",storeid); if(!storeid.empty()){ return true; } Loading src/auth.h +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ namespace blogi { Auth(blogi::Database **pcon,blogi::Session *session,blogi::Config *cfg); ~Auth(); bool login(const int tid,const char *username,const char *password,const char *ssid); bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid); bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid); private: #ifdef LDAPSUPPORT bool ldapLogin(const int tid,const char *username,const char *password,const char *ssid); Loading src/blogi.cpp +17 −10 Original line number Diff line number Diff line Loading @@ -162,9 +162,9 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const for(blogi::Plugin::PluginData *curplg=BlogiPlg->getFirstPlugin(); curplg; curplg=curplg->getNextPlg()){ if(curreq->isMobile()) curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile); curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile,sessionid); else curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop); curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop,sessionid); } PlgArgs->theme->printSite(tid,out,&index,curreq->getRequestURL(),false); Loading @@ -176,7 +176,6 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const return; } if(PlgArgs->auth->login(tid,username.c_str(),password.c_str(),sessionid)){ PlgArgs->session->addSessionData(sessionid,"username",username.c_str(), username.length()); libhttppp::HttpResponse curres; curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); Loading Loading @@ -214,6 +213,7 @@ void blogi::Blogi::logoutPage(libhttppp::HttpRequest *curreq,const int tid,const } libhttppp::HttpResponse curres; libhttppp::HttpCookie cookie; //need remove method cookie.setcookie(&curres,"sessionid","empty"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); Loading Loading @@ -303,18 +303,25 @@ RETRY_REQUEST: if(curcookie->getKey() && strcmp(curcookie->getKey(),"sessionid")==0) sessid=curcookie->getValue(); } if(!sessid || !PlgArgs->session->exists(sessid) ) throw; if(!PlgArgs->session->exists(sessid) ) throw "session not exists"; }catch(...){ sessid=PlgArgs->session->createSession(); cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1, nullptr,false,"1","Lax"); cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1,"/",false,"1","Lax"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << curreq->getRequest(); curres.setContentType("text/html"); curres.send(curreq, nullptr, 0); return; } std::cerr << sessid << std::endl; try{ /*blogi internal pages and redirections*/ if(strcmp(curreq->getRequestURL(),"/")==0 || strcmp(curreq->getRequestURL(),PlgArgs->config->getprefix())==0){ curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << PlgArgs->config->buildurl("content/tag",url,512); *curres.setData("Location") << PlgArgs->config->getstartpage(); curres.setContentType("text/html"); curres.send(curreq, nullptr, 0); return; Loading src/session.cpp +1 −1 File changed.Contains only whitespace changes. Show changes Loading
src/auth.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ bool blogi::Auth::ldapLogin(const int tid,const char *username,const char *passw throw excep; } const char* sessid = nullptr; char sid[512],email[255],displayname[512]; BerElement* ber; char* dn; Loading Loading @@ -210,7 +209,8 @@ LDAPLOGINUSERFOUND: _dbconn[tid]->exec(&sql,res); }; _session->addSessionData(sid,"uid",ssid,strlen(ssid)+1); _session->addSessionData(ssid,"uid",sid,strlen(ssid)+1); _session->addSessionData(ssid,"username",username,strlen(ssid)+1); std::cout << "User : " << sid << " are logged in" << std::endl; Loading @@ -221,12 +221,12 @@ LDAPLOGINUSERFOUND: } #endif bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid){ bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid){ libhttppp::HttpCookie cookie; cookie.parse(curreq); try{ std::string storeid; _session->getSessionData(sessionid,"uid",storeid); _session->getSessionData(ssid,"uid",storeid); if(!storeid.empty()){ return true; } Loading
src/auth.h +1 −1 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ namespace blogi { Auth(blogi::Database **pcon,blogi::Session *session,blogi::Config *cfg); ~Auth(); bool login(const int tid,const char *username,const char *password,const char *ssid); bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid); bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid); private: #ifdef LDAPSUPPORT bool ldapLogin(const int tid,const char *username,const char *password,const char *ssid); Loading
src/blogi.cpp +17 −10 Original line number Diff line number Diff line Loading @@ -162,9 +162,9 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const for(blogi::Plugin::PluginData *curplg=BlogiPlg->getFirstPlugin(); curplg; curplg=curplg->getNextPlg()){ if(curreq->isMobile()) curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile); curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile,sessionid); else curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop); curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop,sessionid); } PlgArgs->theme->printSite(tid,out,&index,curreq->getRequestURL(),false); Loading @@ -176,7 +176,6 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const return; } if(PlgArgs->auth->login(tid,username.c_str(),password.c_str(),sessionid)){ PlgArgs->session->addSessionData(sessionid,"username",username.c_str(), username.length()); libhttppp::HttpResponse curres; curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); Loading Loading @@ -214,6 +213,7 @@ void blogi::Blogi::logoutPage(libhttppp::HttpRequest *curreq,const int tid,const } libhttppp::HttpResponse curres; libhttppp::HttpCookie cookie; //need remove method cookie.setcookie(&curres,"sessionid","empty"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); Loading Loading @@ -303,18 +303,25 @@ RETRY_REQUEST: if(curcookie->getKey() && strcmp(curcookie->getKey(),"sessionid")==0) sessid=curcookie->getValue(); } if(!sessid || !PlgArgs->session->exists(sessid) ) throw; if(!PlgArgs->session->exists(sessid) ) throw "session not exists"; }catch(...){ sessid=PlgArgs->session->createSession(); cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1, nullptr,false,"1","Lax"); cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1,"/",false,"1","Lax"); curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << curreq->getRequest(); curres.setContentType("text/html"); curres.send(curreq, nullptr, 0); return; } std::cerr << sessid << std::endl; try{ /*blogi internal pages and redirections*/ if(strcmp(curreq->getRequestURL(),"/")==0 || strcmp(curreq->getRequestURL(),PlgArgs->config->getprefix())==0){ curres.setState(HTTP307); curres.setVersion(HTTPVERSION(1.1)); *curres.setData("Location") << PlgArgs->config->buildurl("content/tag",url,512); *curres.setData("Location") << PlgArgs->config->getstartpage(); curres.setContentType("text/html"); curres.send(curreq, nullptr, 0); return; Loading