How to properly deal with HTTP 200 response with body with rlm_rest?
Martin Gignac
martin.gignac at gmail.com
Fri Apr 26 21:28:01 CEST 2019
Hi Arran,
Try as I might, I couldn't figure out where to put this successfully
in sites-enabled/default:
> rest {
> updated = 1
> }
> if (updated) {
> ok
> }
What I ended up trying (and what worked for me) was that I modified
rlm_rest.c to return 'ok' even in the presence of a body during the
'authenticate' phase:
diff --git a/src/modules/rlm_rest/rlm_rest.c b/src/modules/rlm_rest/rlm_rest.c
index 7cd1b45..2d9a033 100644
--- a/src/modules/rlm_rest/rlm_rest.c
+++ b/src/modules/rlm_rest/rlm_rest.c
@@ -513,7 +513,7 @@ static rlm_rcode_t CC_HINT(nonnull)
mod_authenticate(void *instance, REQUEST *re
ret = rest_response_decode(inst, section,
request, handle);
if (ret < 0) rcode = RLM_MODULE_FAIL;
else if (ret == 0) rcode = RLM_MODULE_OK;
- else rcode = RLM_MODULE_UPDATED;
+ else rcode = RLM_MODULE_OK;
break;
} else if (hcode < 500) {
rcode = RLM_MODULE_INVALID;
This is the only change I needed to have my scenario working. Indeed,
the Filter-ID attribute is retrieved from the JSON payload of the HTTP
response and is automatically appended to the returned Access-Accept
message, as I needed it to be.
Since I'm OK with having a modified rlm_rest module this appears the
simplest way for me to get the required behavior in my situation.
Thanks,
-Martin
More information about the Freeradius-Users
mailing list