Recently I decided to move the users from ldap to a db, where accounting
is already being stored. After populating the tables, apropiately
modifying radiusd.conf and rechecking it was all correct I found this
error which has showed up in the list before:

> rlm_sql: Pairs do not match [test1]
> rlm_sql: Released sql socket id: 3
>   modcall[authorize]: module "sql" returns notfound
> modcall: group authorize returns ok
> auth: No authenticate method (Auth-Type) configuration found for the
request:
> Rejecting the user
> auth: Failed to validate the user.

The problem is that the queries in authorize_check_query and
authorize_reply_query do not bring by default the operator present in
the table, thus forcing the server to use ==. By using this default
operator, the behaviour goes "see if there are already attributes in the
check (or reply) list with this values" instead of the intended "add
this attributes/values to the check (or reply) list".

That is why the sometimes proposed solution "change the operator to :=
instead of ==" does not work; anyway the queries are not bringing it in.
Adding Op to the list of columns selected in both queries solves the
problem.

My 2 cents.

P.D. From the latest CVS version, this issue has been solved for mssql
and mysql but postgresql.conf still is incorrect.


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to