my db http returns the password in plain string by the way.
On Mon, Jun 1, 2015 at 6:57 PM, Tito Cumpen <t...@xsvoce.com
<mailto:t...@xsvoce.com>> 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
Users@lists.opensips.org <mailto:Users@lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users