Note reject changes
[freeradius.git] / doc / processing_users_file
1
2
3                 How is the USERS file processed?
4
5
6 After the items of a request have been mangled by the "hints" and
7 "huntgroups" files, the users file is processed.
8
9 A request has initially an empty check list and an empty reply list
10 attached to it. So each request has 3 A/V pairlists associated with it
11
12 - the request list (as originated from the terminal server)
13 - the check list   (initially empty)
14 - the reply list   (initially empty)
15
16 For every entry in the users file, the Username VP (Value-Pair) is checked.
17 If it matches or it is a DEFAULT entry, a check pairlist is created
18 (call it tmpcheck) by adding the check pairlist of the current usersfile
19 entry to the check pairlist of the request. If an attribute is already
20 present in the check pairlist of the request it will not be changed
21 (see files.c:movepair).
22
23 Then the request pairlist is compared with the tmpcheck pairlist. If
24 all items match (except for password-related items at this time!)
25 the following actions are taken:
26
27 - The reply pairlist of the usersfile entry is appended to the reply
28   pairlist of the request
29 - The check pairlist of the request is replaced by the tmpcheck pairlist
30   (this is the same as: the check pairlist from the usersfile entry is
31    appended to the pairlist of the request)
32
33 Then a check is made to see if the reply pairlist contains an A-V pair
34 of "Fall-Through = Yes". If so, the next entry in the usersfile is processed
35 as above. If not, we stop processing the users file.
36
37 Then after all this is done, the Authentication information is filtered
38 from the check pairlist, the password of the users is checked, and we
39 send a reply back to the terminal server.
40