%{SQL-User-Name} parsing in authorize section - bug?
Igor Smitran
sigor at blic.net
Mon Oct 30 14:05:55 UTC 2023
Hi list,
Have i found a bug or i have made a mistake in configuring freeradius,
version 3.2.3 from networkradius ubuntu repo...
When i put this into authorize section:
authorize {
...
# MAC LIMIT
update control {
Tmp-Integer-3 := "%{sql: SELECT count(*) FROM radcheck
WHERE Username = '%{SQL-User-Name}' and
(mac_limit='%{Calling-Station-Id}' or mac_limit='*');}"
}
...
}
it doesn't work, SQL-User-Name is empty:
(0) update control {
(0) EXPAND %{User-Name}
(0) --> testuser
(0) SQL-User-Name set to 'testuser'
rlm_sql (sql): Reserved connection (2)
(0) Executing select query: SELECT count(*) FROM radcheck WHERE
Username = '' and (mac_limit='' or mac_limit='*');
rlm_sql (sql): Released connection (2)
(0) EXPAND %{sql: SELECT count(*) FROM radcheck WHERE Username =
'%{SQL-User-Name}' and (mac_limit='%{Calling-Station-Id}' or
mac_limit='*');}
(0) --> 0
(0) Tmp-Integer-3 := 0
(0) } # update control = noop
If User-Name is used instead of SQL-User-Name it works:
authorize {
...
# MAC LIMIT
update control {
Tmp-Integer-3 := "%{sql: SELECT count(*) FROM radcheck
WHERE Username = '%{User-Name}' and (mac_limit='%{Calling-Station-Id}'
or mac_limit='*');}"
}
...
}
(0) update control {
rlm_sql (sql): Reserved connection (2)
rlm_sql (sql): Released connection (2)
(0) EXPAND %{User-Name}
(0) --> testuser
(0) SQL-User-Name set to 'testuser'
rlm_sql (sql): Reserved connection (3)
(0) Executing select query: SELECT count(*) FROM radcheck WHERE
Username = 'testuser' and (mac_limit='' or mac_limit='*');
rlm_sql (sql): Released connection (3)
(0) EXPAND %{sql: SELECT count(*) FROM radcheck WHERE Username =
'%{User-Name}' and (mac_limit='%{Calling-Station-Id}' or mac_limit='*');}
(0) --> 1
(0) Tmp-Integer-3 := 1
(0) } # update control = noop
It looks like SQL-User-Name population is done after authorize is
processed, i am not sure. Everywhere else i am able to use
SQL-User-Name, including queris.conf. But, not in authorize.
Please correct me if i am wrong. I would appreciate any help. If it's my
error than even better. It's not so big problem, but it's annoying.
Same setup works in 2.1 but not in 3.0 and 3.2
Thank you,
Igor Smitran
More information about the Freeradius-Users
mailing list