Guillaume Yziquel a écrit :
In this last case, how do I know what are the admissible values for oids?
It seems to me that the oids are obtained in the authentication phase. Essentially in AUTHcheckCredentials() in mal_authorize.mx, and specifically in this piece of code (when setting uid*):
if (b && BATcount(b) > 0) { BATiter bi = bat_iterator(b);
if (*scenario == NULL || strNil(*scenario)) { BBPunfix(b->batCacheid); /* of course we DO NOT tell the exact reason here again */ throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER " '%s'",*username); }
/* ok, there are some tuples that we have to consider */ BATloop(b, p, q) { tmp = (str)BUNtail(bi, p); assert (tmp != NULL); if (strcmp(*scenario, tmp) == 0) { /* YAY! fun! party! We are granted access! */ *uid = *id; BBPunfix(b->batCacheid); return(MAL_SUCCEED); } }
BBPunfix(b->batCacheid); /* uh oh... that we made it till here means it's wrong */ throw(INVCRED, "checkCredentials", INVCRED_INVALID_USER " '%s'", *username); } else { /* no scenario restriction applies, so everything is good */ if (b) BBPunfix(b->batCacheid); *uid = *id; return(MAL_SUCCEED); }
In my situation, this authentication is triggered by a MAL call to mal.mapiclient, which under the hood calls MSscheduleClient(), which itself calls AUTHcheckCredentials(). All the best, -- Guillaume Yziquel http://yziquel.homelinux.org/