control flow in FreeRADIUS authorize section
Bruce Bauman
bbauman at oit.rutgers.edu
Wed Oct 2 23:06:05 CEST 2013
We are getting unexpected behavior from FreeRADIUS 2.2.x (built from current git).
We want to check if a user is BLOCKED first, and only then do we want to perform some other checks.
Our current config looks like this:
authorize {
#auth_log # uncomment for debugging
# try to rewrite calling station ID to be sane
rewrite_calling_station_id
rewrite_username_lowercase
# set VLANs for infected or tempsuspension roles
IPSblocks_SQL {
# handle failures
notfound = 999
reject = 999
}
switch reply:RU-block-description {
case "infected" {
if(Airespace-Wlan-Id){
update reply {
Cisco-AVPair += "url-redirect=http://ruwireless.rutgers.edu/index.php?page=infected"
Airespace-ACL-Name = "Cisco_infected"
}
}
else {
update reply {
# try VLAN assignment
Tunnel-Type := "VLAN"
Tunnel-Medium-Type := "IEEE-802"
Tunnel-Private-Group-Id := 1666
}
}
# force accept regardless of password
update control {
Auth-Type := "Accept"
}
ok
}
case "tempsus" {
update reply {
# try VLAN assignment
Tunnel-Type := "VLAN"
Tunnel-Medium-Type := "IEEE-802"
Tunnel-Private-Group-Id := 1666
}
# force accept regardless of password
update control {
Auth-Type := "Accept"
}
ok
}
# default is to do nothing
}
<BUNCH OF OTHER UNLANG CODE>
The IPSblocks_SQL does set RU-block description correctly, and the case statement behaves as expected.
We want to stop executing the <BUNCH OF UNLANG CODE> in the first two cases ("infected" and "tempsus"), effectively doing something like a return.
I've read the documentation a hundred times and can't figure out how to do what I want - everything I've tried doesn't work.
If someone could give me a simple hint to point me in the right direction it would be greatly appreciated.
-- Bruce
Bruce Bauman - Systems Administrator
Rutgers University Office of Information Technology
Campus Computing Services - Central Systems and Services
Office ~ (848) 445-6363
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20131002/f1b96084/attachment-0001.html>
More information about the Freeradius-Users
mailing list