-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[defect]: session-state is empty in post_auth section after proxying request to home server, branch 3.2.x #5288
Comments
v3.2.x is a stable release, and should not have breaking changes. So this is a regression which needs to be fixed. We'll look at adding test cases for proxying, to ensure that the behavior is correct, and stays correct. The intent behind the change was to prevent the server from mangling the |
However, we still need a fix for the underlying issue of proxies which are reported to mangle the State attribute
I've reverted the change which broke it, and pushed other changes which should help. Please test and see if they work. Ideally, test one commit, and if it works, test the next commit. That way if anything goes wrong, we know exactly which change has the issue. |
Thank you, I've tested new commits, this commit 30939db that reverts changes seems fixing my issue Other commits after it, return the issue back. First I've tried this commit ead182d and then a9582fb (HEAD) From my research on what my code do I see that I also save inner user names from "EAP" virtual site, using this statement. Sorry, yesterday I've mentioned that this issue is probably just from proxying request to the home server.
I guess it should be ok, because it explicitly updates the "outer" state. And I see the saved state in the post_proxy section. But after that when flow again passed to the "authorize" section in debug output I don't see any data in session-state. The logs below are from this version FreeRADIUS Version 3.2.4 (git #a9582fb),
|
Ah... you're proxying the inner-tunnel data, and not doing normal proxying. That will change the requirements. I'll take a look and push a different fix. |
I'm working on some other issues for a bit, but I hope to have a fix next week. |
I've pushed a fix which I think should help. Please check, and we'll add it to the next release. |
Do you have any feedback on the issue? Does the patch fix it? |
@alandekok Hi, sorry for the long delay in replying. It seems it is still not working as before. Just to clarify what is not working: In the virtual server responsible for EAP/PEAP, I am trying to save the real username into the I hope that this is a correct way. I've tested on 5ff76f9 commit and on current HEAD of v3.2.x branch |
What type of defect/bug is this?
Unexpected behaviour (obvious or verified by project member)
How can the issue be reproduced?
I am still not sure if this is a true issue or just a change that will be a new and standard flow.
Run 2 servers proxy and home server. Configure proxy server and supplicant in such way that the request will be proxied to the home server.
In post_auth section use
debug_all
statement to see all dicts, request, reply, session-state etc.The radius server compiled with commit from the HEAD of the branch 3.2.x will show that
session-state
is emptyThe radius server compiled from this commit
27e4c6764eac8343eb4811a91bef5c364f8e7426
will show data in session-state dict.I am using session-state to store the inner user name in a custom attribute. It is like "permanent" storage, to not lose it for example by data from a reply from the home server.
The "proxy" server knows some additional about the user with the "inner username" name, like the VLAN number and attaches it to the final reply.
So in the post_auth section, I am sending a request to the Python module and trying to use data from session-state.
Log output from the FreeRADIUS daemon
The logs from the branch 3.2.x
The text was updated successfully, but these errors were encountered: