Hi there,

here is the SQL and debug logs from radius.


mysql> select * from radusergroup;
+---------------------------+-----------+----------+
| username                  | groupname | priority |
+---------------------------+-----------+----------+
| [email protected]  | defgroup  |        1 |
[email protected]  | dynamic   |        1 |
+---------------------------+-----------+----------+

mysql> select * from radcheck;
+-------+---------------------------+----------------+----+------------------------------------+
| id    | username                  | attribute      | op | 
value                              |
+-------+---------------------------+----------------+----+------------------------------------+
| 72766 | [email protected]  | Crypt-Password | := | 
$1$7l.zLR5h$8ahKvbTht98HuOHOXWI7v0 |
+-------+---------------------------+----------------+----+------------------------------------+

mysql> select * from radreply;
Empty set (0.00 sec)

mysql> select * from radgroupcheck;
Empty set (0.00 sec)

mysql> select * from radgroupreply;
+----+-----------+-------------------+----+-----------------+
| id | groupname | attribute         | op | value           |
+----+-----------+-------------------+----+-----------------+
|  1 | defgroup  | Framed-MTU        | =  | 1500            |
|  2 | defgroup  | Service-Type      | =  | Framed-User     |
|  3 | defgroup  | Port-Limit        | =  | 1               |
|  7 | dynamic   | Framed-IP-Netmask | =  | 255.255.255.255 |
|  6 | dynamic   | Framed-IP-Address | =  | 255.255.255.254 |
+----+-----------+-------------------+----+-----------------+


rad_recv: Access-Request packet from host 127.0.0.1 port 60675, id=90, length=76
    User-Name = "[email protected]"
    User-Password = "xxx"
    NAS-IP-Address = 10.10.11.95
    NAS-Port = 0
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
[suffix] Looking up realm "mydomain.com" for User-Name = "[email protected]"
[suffix] No such realm "mydomain.com"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[unix] returns notfound
++[files] returns noop
[sql]     expand: %{User-Name} -> [email protected]
[sql] sql_set_user escaped user --> '[email protected]'
rlm_sql (sql): Reserving sql socket id: 3
[sql]     expand: SELECT id, username, attribute, value, op           FROM 
radcheck           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> 
SELECT id, username, attribute, value, op           FROM radcheck           
WHERE username = '[email protected]'           ORDER BY id
rlm_sql_mysql: query:  SELECT id, username, attribute, value, op           FROM 
radcheck           WHERE username = '[email protected]'           ORDER BY id
[sql] User found in radcheck table
[sql]     expand: SELECT id, username, attribute, value, op           FROM 
radreply           WHERE username = '%{SQL-User-Name}'           ORDER BY id -> 
SELECT id, username, attribute, value, op           FROM radreply           
WHERE username = '[email protected]'           ORDER BY id
rlm_sql_mysql: query:  SELECT id, username, attribute, value, op           FROM 
radreply           WHERE username = '[email protected]'           ORDER BY id
[sql]     expand: SELECT groupname           FROM radusergroup           WHERE 
username = '%{SQL-User-Name}'           ORDER BY priority -> SELECT 
groupname           FROM radusergroup           WHERE username = 
'[email protected]'           ORDER BY priority
rlm_sql_mysql: query:  SELECT groupname           FROM radusergroup           
WHERE username = '[email protected]'           ORDER BY priority
[sql]     expand: SELECT id, groupname, attribute,           Value, 
op           FROM radgroupcheck           WHERE groupname = 
'%{Sql-Group}'           ORDER BY id -> SELECT id, groupname, 
attribute,           Value, op           FROM radgroupcheck           WHERE 
groupname = 'defgroup'           ORDER BY id
rlm_sql_mysql: query:  SELECT id, groupname, attribute,           Value, 
op           FROM radgroupcheck           WHERE groupname = 
'defgroup'           ORDER BY id
[sql] User found in group defgroup
[sql]     expand: SELECT id, groupname, attribute,           value, 
op           FROM radgroupreply           WHERE groupname = 
'%{Sql-Group}'           ORDER BY id -> SELECT id, groupname, 
attribute,           value, op           FROM radgroupreply           WHERE 
groupname = 'defgroup'           ORDER BY id
rlm_sql_mysql: query:  SELECT id, groupname, attribute,           value, 
op           FROM radgroupreply           WHERE groupname = 
'defgroup'           ORDER BY id
rlm_sql (sql): Released sql socket id: 3
++[sql] returns ok
++[expiration] returns noop
++[logintime] returns noop
++[pap] returns updated
Found Auth-Type = PAP
+- entering group PAP {...}
[pap] login attempt with password "xxx"
[pap] Using CRYPT encryption.
[pap] User authenticated successfully
++[pap] returns ok
+- entering group post-auth {...}
++[exec] returns noop
Sending Access-Accept of id 90 to 127.0.0.1 port 60675
    Framed-MTU = 1500
    Service-Type = Framed-User
    Port-Limit = 1
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 90 with timestamp +12
Ready to process requests.



And also what does this line for item 5 in rlm_sql mean? What match is it 
referring to?


If there is a match, the reply items for this group are pulled from the 
radgroupreply table and applied.



thanks,
det


________________________________
From: Fajar A. Nugraha <[email protected]>
To: FreeRadius users mailing list <[email protected]>
Sent: Tuesday, August 23, 2011 1:35 PM
Subject: Re: RADIUS does not send reply for all groups the user is a member of

On Tue, Aug 23, 2011 at 12:23 PM, Det Det <[email protected]> wrote:
> Hi,
> user1 is a member of group1 and group2. both group1 and group2 has replies
> in radgroupreply table.
> when freeradius query for radusergroup, it will only get the first group the
> user is a member of and will proceed to get the reply attributes for that
> group as below.
> query1: SELECT groupname           FROM radusergroup           WHERE
> username = '[email protected]'           ORDER BY priority
> query2: SELECT id, groupname, attribute,           value, op           FROM
> radgroupreply           WHERE groupname = 'group1'           ORDER BY id
> from the debug, it does not do this query
> query3: SELECT id, groupname, attribute,           value, op           FROM
> radgroupreply           WHERE groupname = 'group2'           ORDER BY id
> any idea why?
> i am very sure that query 1 returns more that one value (that is 2 groups,
> group1 and group2)

If you want more help, you need to provide more output from debug log,
and (possibly) what's in the radusergroup/radgroupcheck/radgroupreply.

In the mean time, see doc/rlm_sql. A snippet from that file:

  5. For each group this user is a member of, the corresponding check items
     are pulled from radgroupcheck table and compared with the request.  If
     there is a match, the reply items for this group are pulled from the
     radgroupreply table and applied.
  6. Processing continues to the next group IF:
     a. There was not a match for the last group's check items OR
     b. Fall-Through was set in the last group's reply items
     (The above is exactly the same as in the users file)

-- 
Fajar

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

Reply via email to