Hi, I tried different queries but they are failed. What should be the result of the query so that there is no error message? [ { attribute: 'User-Name', value: 'test', op: ':=' }, { attribute: 'User-Password', value: '12345', op: ':=' } ] OR [ { 'test', attribute: 'User-Password', value: '12345', op: ':=' } ] OR [ { 'User-Name', value: 'test', attribute: 'User-Password', value: '12345', op: ':=' } ] On raddb/mods-config/sql/main/mongo/queries.conf examples I see # Example of Result: # # { "attribute" : "User-Name", "Value" : "pippo", "op" : ":=" } # { "attribute" : "ClearText-Password", "value" : "pwd1", "op" : ":=" } # { "attribute" : "Cache-TTL", "value" : 1000, "op" : ":=" } My query db.radcheck.aggregate([ { '$match': { 'User-Name': 'test' } }, { '$addFields': { 'attributes.User-Name': '$User-Name', 'attributes.User-Password': '$User-Password' } }, { '$project': { '_id': 0, 'attributes': { '$objectToArray': '$attributes' } } }, { '$unwind': { 'path': '$attributes' } }, { '$project': { '_id': 0, 'attribute': '$attributes.k', 'value': '$attributes.v', 'op': ':=' } } ]) My result on mongoDB Compass [ { attribute: 'User-Name', value: 'test', op: ':=' }, { attribute: 'User-Password', value: '12345', op: ':=' } ] My error on FreeRadius getting result from row 0 = 0x5639efc55b90 (0) sql: ERROR: The op field for attribute 'test = (null)' is NULL, or non-existent. (0) sql: ERROR: You MUST FIX THIS if you want the configuration to behave as you expect (0) sql: ERROR: Value field is empty or NULL, skipping the entire row (0) sql: ERROR: Error parsing user data from database result (0) sql: ERROR: Error getting check attributes Giedrius On 2021-03-24 14:36, Alan DeKok wrote:
On Mar 23, 2021, at 8:40 PM, Giedrius Baronas <g.baronas@gmail.com> wrote:
(0) sql: ERROR: The op field for attribute ':= = (null)' is NULL, or non-existent. That's telling.
The operator name here is ":=". The value is NULL. This says that you're returning the fields in the wrong order.
See raddb/mods-config/sql/main/mongo/queries.conf
# These queries compare the check items for the user # in ${authcheck_table} and setup the reply items in # ${authreply_table}. You can use any query/tables # you want, but the return data for each row MUST # be in the following order: # # 0. Row ID (currently unused) # 1. UserName/GroupName # 2. Item Attr Name # 3. Item Attr Value # 4. Item Attr Operation
Alan DeKok.
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html