Closed spencergibb closed 1 year ago
I'm just curious. Will this issue be targeted for a 2.x release?
@joshiste it will not be
Useful for those who can't (or won't) use webflux.
Hi Team,
I have implemented Spring cloud gateway and Eureka discovery server everything working fine. Now I am trying to add OAUTH2 security at Spring cloud gateway, but I can see its not compatible with gateway.
Is it possible to implement oAuth2 at gateway if yes can anyone share sample code please.
Is there any progress?
No
Is there a plan to allow Spring MVC? This prevents us from using our common libraries such logging filters in our gateway implementation.
@spencergibb we have been using spring cloud zuul with @EnableZuulProxy mode in an spring boot app which has some rest endpoints exposed with restcontoller. What is the suggestion to use spring cloud gateway in this situation
@mohanrao only if you migrate to a webflux application. If you aren't doing anything serlvet specific and are using spring annotations, it shouldn't be too difficult.
Thanks @spencergibb . I will try migrating to a web flux . Our application uses oracle so it's not a true migration for some/most of the rest endpoints
+1 for this. My use case is actually quite simple -- I work for a large corporation and want to use spring cloud with a gateway service, but the security libraries to interact with corporate SSO are written in such a way that is extremely dependent on the Servlet Context (hard-coded HttpServletRequest objects throughout the entire stack). For better or worse, I'd be surprised if there's ever a reactive implementation of that library, so it simply doesn't work with spring cloud gateway. Assuming as of now, still no progress?
Until it gets assigned a project or milestone, you can assume no progress.
@spencergibb is there any mechanism available to vote to get this needs to assigned to a project or milestone
The reaction in https://github.com/spring-cloud/spring-cloud-gateway/issues/36#issue-216130146 is the only voting we have. Note, this is a major effort and basically a parallel implementation.
Here's a super simple (read nowhere near close) webmvc.fn version https://github.com/spencergibb/spring-cloud-gateway/blob/92208270307f275693e0c5223e85c5572f1a6100/spring-cloud-gateway-fn/src/test/java/org/springframework/cloud/gateway/fn/webmvc/WebmvcIntegrationTests.java#L84
+1 as Project Loom getting finalized. It's good to have Spring MVC based Gateway.
Will this support equivalent of the /zuul/ prefix support (bypass dispatcher servlet) of NetFlix Zuul for uploading large files . Or does that not apply to the new architecture? If the use case is still valid, what is the equivalent way to handle it in new Spring MVC implementation of SCG.
This will not bypass the dispatcher servlet. I do not know if that use case is valid outside of zuul
I meant the original implementation in Netflix Zuul provided the /zuul/
prefix based bypass of DispatcherServlet
because of some suckiness (a comment I saw on SO - https://stackoverflow.com/a/32100705 ) in DispatcherServlet
, I think related to buffering of request/response or something like that. That will still be the issue in new SCG MVC implementation right? Hence my question. May be I am misunderstanding as to why originally /zuul/
support was added. And I did not mean to ask for exact /zuul/
prefix solution, but equivalent that deals with the original isuue.
The initial implementation is there. Track the TODO list https://github.com/spring-cloud/spring-cloud-gateway/pull/2949#issue-1703012276 for additional things for M1. Remaining TODO's will get added to new issues for upcoming milestones.
@sandipchitale reading my SO answer and after adding support for multipart formdata (file uploads), I believe (though I haven't verified) that the modifications I made to multipart handling for an MVC gateway will eliminate previous problems with zuul. Basically, I turn off multipart parsing for gateway requests.
@spencergibb This function is very interesting. I will try to change my application from webflux to mvc with upcoming spring boot 3.2 and virtual thread.
@spencergibb thanks for the hard work! May I know when the M2 will be released?
Next week, but this was released in M1
We have an implementation in a SpringMVC (gateway+angular frontend app) with embedded @EnableZuulProxy. Now that NetFlix Zuul is EOLed we tried to implement some of this using ProxyExchange with mixed success.
It will be helpful if there was some guidance provided on how to replace @EnableZuulProxy functionality with Spring Cloud Gateway MVC.fn . Or the provided functionality is already doing what @EnableZuulProxy does?
It may be the subject of a blog or something, but zuul hasn't been supported for a number of years. This implementation provides much more functionality than the zuul implementation though there are likely incompatibilities.
Thanks @spencergibb. I am pretty confident that a lot of people may be looking for replacement of @EnableZuulProxy. So either a blog post or some form of documentation on this will be extremely helpful. May be we can request Josh long to do a Spring tip on this topic.
Would probably need a Servlet implementation ofServerWebExchange
so that predicates and filters can be reused.This was a bad idea, though I tried.