I am using ForwardAuth Middleware but it is only accepting get request and is there any way i can pass post request in forward auth.
What can be done? Can that be done via custom plugin. If yes how to create custom plugin is there any documnetation?
From reading here the last months, it seems the active Traefik developers don’t like dealing with the (potentially huge) body.
The reasoning is that in regular proxy mode the content is read and directly streamed to the target, no storage required. If you sent the body to auth first, then you need to load the whole body into RAM, forward it to auth, then to target. Many requests with large body size could overwhelm the system.
From my point of view you have 4 options:
- Create a feature request on Github
- Create a pull request, meaning you (let someone else) develop the feature, be merged into main Traefik (but start with 1. !)
- Use an existing community plugin (list)
- Build your own plugin (doc)
Potentially you could use (some of) the source of ForwardAuth as a base to build the plugin. (Source)
There is now a new option called forwardbody
and maxbodysize
that implement the requested features.
Note that the method for forwarded requests is still set to GET
in any case, even if the incoming request uses another method. I've created an issue on GitHub to discuss this, proposing a new option that would allow to keep the original requests' methods: Keep request method in ForwardAuth middleware · Issue #11438 · traefik/traefik · GitHub