my db http returns the password in plain string by the way. On Mon, Jun 1, 2015 at 6:57 PM, Tito Cumpen <[email protected]> wrote:
> Hello group, > > > I am attempting to add memcache auth validation in opensips 2.1. I was > using http db which returns a string of the user password password. This > was working prior to utilizing pv_www_authorize. I used this document as a > guideline http://www.opensips.org/Documentation/Tutorials-MemoryCaching > > Here is my auth mod param config > loadmodule "cachedb_local.so" > loadmodule "auth.so" > loadmodule "auth_db.so" > modparam("auth","username_spec","$avp(i:54)") > modparam("auth","password_spec","$avp(i:55)") > modparam("auth","calculate_ha1",1) > > modparam("auth_db", "calculate_ha1", yes) > > modparam("auth_db", "password_column", "password") > #modparam("auth_db", "db_url", > modparam("auth_db", "db_url", > "http://mysubscriberdatabase.com") > > modparam("auth_db", "load_credentials", "$avp(i:55)=password") > > > if (is_method("REGISTER")) { > > # indicate that the client supports DTLS > # so we know when he is called > if (isflagset(SRC_WS)) > setbflag(DST_WS); > > if ( isflagset(uac_ws) ) { > xlog("setting avp attribute in register for websocket \n"); > > $avp(attr)="websocket"; > } > if(cache_fetch("local","passwd_$tu",$avp(i:55))) { > xlog("$tU 's credentials are stored in local cache using it for this > register request \n"); > $avp(i:54) = $tU; > xlog("SCRIPT: stored password is $avp(i:55)\n"); > # perform auth from variables > # $avp(i:54) contains the username > # $avp(i:55) contains the password > if (!pv_www_authorize("")) { > $var(rc2) = pv_www_authorize(""); > # $var(rc2) = www_authorize("", "subscriber"); > xlog("Return code is $var(rc2) \n"); > switch ( $var(rc2) ) { > case 1 : > # if ( proto==TCP || 0 ) { > # setflag(TCP_PERSISTENT); > # setflag(6); > # } > > > if (!save("location","f")) > sl_reply_error(); > > exit; > > > # success > break; > case -1: > sl_send_reply("404","User not found"); > exit; > break; > case -2: > sl_send_reply("403","Forbidden (Bad auth)"); > exit; > break; > case -3: > www_challenge("", "0"); > exit; > #sl_send_reply("403","Forbidden auth ID"); > #break; > default: > www_challenge("", "0"); > exit; > > } > > }; > > if (!save("location","f")) > sl_reply_error(); > > exit; > }else{ > xlog("could not find the auth info in local cache for $tU\n"); > xlog("accessing the external db for auth info"); > # authenticate the REGISTER requests > if (!www_authorize("", "subscriber")) > { > xlog("new challenger > $tU\n"); > > > # www_challenge("", "0"); > > > > $var(rc) = www_authorize("", "subscriber"); > xlog("Return code is $var(rc) \n"); > > switch ( $var(rc) ) { > case 1 : > # if ( proto==TCP || 0 ) { > # setflag(TCP_PERSISTENT); > # setflag(6); > # } > # $avp(me) = > $(tU{s.tolower}); > > cache_store("local","passwd_$tu","$avp(i:55)",1200); > > if (!save("location","f")) > sl_reply_error(); > > exit; > > > # success > break; > case -1: > sl_send_reply("404","User not found"); > exit; > break; > case -2: > sl_send_reply("403","Forbidden (Bad auth)"); > exit; > break; > case -3: > www_challenge("", "0"); > exit; > #sl_send_reply("403","Forbidden auth ID"); > #break; > default: > www_challenge("", "0"); > exit; > > } > } > > xlog("should be storing local now that it has been authorized\n"); > > cache_store("local","passwd_$tu","$avp(i:55)",1200); > } > > if (!save("location","f")) > sl_reply_error(); > > exit; > } > > > > The issue is the pv__www_authorize method after the verification wether > the password is stored locally always returns -2 which means the password > is incorrect. Can anyone provide any guidence as to why this is ? > > > Thanks, > Tito >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
