Commit 586541fe authored by jan.koester's avatar jan.koester
Browse files

small fixes

parent 63970f69
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -61,13 +61,14 @@ blogi::Auth::~Auth(){
}

bool blogi::Auth::login(const int tid,const char* username, const char* password, std::string& ssid){
#ifdef LDAPSUPPORT
    if(!ldapLogin(tid,username,password,ssid))
        return locallogin(tid,username,password,ssid);
#else
#ifndef LDAPSUPPORT
    return locallogin(username,password,ssid);
#else
    bool ret=ldapLogin(tid,username,password,ssid);
    if(!ret)
        return locallogin(tid,username,password,ssid);
    return ret;
#endif
    return false;
}

bool blogi::Auth::locallogin(const int tid,const char* username, const char* password, std::string& ssid){
@@ -118,11 +119,12 @@ bool blogi::Auth::ldapLogin(const int tid,const char *username,const char *passw
        throw excep;
    }

    char* attrs[] = { (char*)"objectSid",(char*)"userPrincipalName",(char*)"mail",(char*)"gecos",NULL };
    char* attrs[] = { (char*)"objectSid",(char*)"userPrincipalName",(char*)"mail",(char*)"gecos",nullptr };
    LDAPMessage* answer, * entry;
    struct timeval timeout;

    timeout.tv_sec = 1;
    timeout.tv_usec =0;

    ulerr = ldap_search_ext_s(userldap, _config->getlpbasedn(), LDAP_SCOPE_SUBTREE, _config->getlpfilter(), attrs, 0, &userserverctls, &userclientctls, &timeout, 0, &answer);

@@ -197,7 +199,6 @@ LDAPLOGINUSERFOUND:

        printSID(mysid,sid,512);
        destroySID(mysid);
        std::cout << "User : " << sid << " are logged in" << std::endl;
        ssid=sid;
        blogi::SQL sql;
        blogi::DBResult res;
@@ -210,6 +211,8 @@ LDAPLOGINUSERFOUND:

        _session->createSession(sid);

        std::cout << "User : " << sid << " are logged in" << std::endl;

        ldap_memfree(dn);
        ldap_msgfree(answer);
        ldap_unbind_ext_s(userldap, &userserverctls, &userclientctls);
+1 −3
Original line number Diff line number Diff line
@@ -130,7 +130,6 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid){

    for (libhttppp::HttpForm::UrlcodedForm::Data* cururlform = curform.UrlFormData.getFormData(); cururlform;
        cururlform = cururlform->nextData()) {
        std::cout << cururlform->getKey() <<std::endl;
        if (strcmp(cururlform->getKey(), "username") == 0) {
            username = cururlform->getValue();
        }else if (strcmp(cururlform->getKey(), "password") == 0) {
@@ -183,8 +182,7 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid){
        PlgArgs->session->addSessionData(sessid,"username",username.c_str(), username.length());
        libhttppp::HttpResponse curres;
        libhttppp::HttpCookie cookie;
        cookie.setcookie(&curres, "sessionid", sessid,nullptr,PlgArgs->config->getDomain(),-1,
                         PlgArgs->config->buildurl("",url,512),false,"1","Lax");
        cookie.setcookie(&curres, "sessionid", sessid,nullptr,PlgArgs->config->getDomain(),-1, nullptr,false,"1","None");
        curres.setState(HTTP307);
        curres.setVersion(HTTPVERSION(1.1));
        *curres.setData("Location") << PlgArgs->config->getstartpage();
+16 −5
Original line number Diff line number Diff line
@@ -54,9 +54,15 @@ const char *blogi::Session::createSession(const char *uid){
};

void blogi::Session::addSessionData(const char *sessionid,const char *key,const char *value,size_t size){
    for(SessionData *curses=_firstSessionData; curses; curses=curses->_nextSessionData){
    uuid_t sin;
        uuid_parse(sessionid,sin);

    if(uuid_parse(sessionid,sin)!=0){
        libhttppp::HTTPException excep;
        excep[libhttppp::HTTPException::Error] << "addSessionData Session: sessionid empty !";
        throw excep;
    }

    for(SessionData *curses=_firstSessionData; curses; curses=curses->_nextSessionData){
        if(uuid_compare(curses->_sessionid,sin)==0){
            if(curses->_firstData){
                curses->_lastData->_nextData=new SessionData::Data;
@@ -70,7 +76,6 @@ void blogi::Session::addSessionData(const char *sessionid,const char *key,const
            snprintf(curses->_lastData->_key,255,"%s",key);
            return;
        }

    }

    libhttppp::HTTPException excep;
@@ -79,9 +84,15 @@ void blogi::Session::addSessionData(const char *sessionid,const char *key,const
};

void blogi::Session::getSessionData(const char *sessionid,const char *key,std::string &value){
    for(SessionData *curses=_firstSessionData; curses; curses=curses->_nextSessionData){
    uuid_t sin;
        uuid_parse(sessionid,sin);

    if(uuid_parse(sessionid,sin)!=0){
        libhttppp::HTTPException excep;
        excep[libhttppp::HTTPException::Error] << "getSessionData Session: sessionid empty !";
        throw excep;
    }

    for(SessionData *curses=_firstSessionData; curses; curses=curses->_nextSessionData){
        if(uuid_compare(curses->_sessionid,sin)==0){
            for(SessionData::Data *curdat=curses->_firstData; curdat; curdat=curdat->_nextData){
                if(strcmp(key,curdat->_key)==0){