Skip to content

WEBFLUX : RouterFunctionWebHandle cannot be easily extended/overwritten; embedded in RouterFunctions #32691

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

Closed
orubel opened this issue Apr 22, 2024 · 3 comments
Assignees
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) status: declined A suggestion or change that we don't feel we should currently apply status: feedback-provided Feedback has been provided

Comments

@orubel
Copy link

orubel commented Apr 22, 2024

Want to read in external properties from a JSON schema for routerFunctionWebHandle but this cannot be easily extended/overwritten without entire routerfunctions class needing overwritten.

Suggest abstracting these out.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged or decided on label Apr 22, 2024
@snicoll
Copy link
Member

snicoll commented Apr 22, 2024

Please take the time to describe the use case if you want us to consider a change. Since you seem to have tried something already, sharing a small sample that represents that is the next logical step for us to review. Thanks.

@snicoll snicoll added the status: waiting-for-feedback We need additional information before we can continue label Apr 22, 2024
@orubel
Copy link
Author

orubel commented Apr 22, 2024

I am wanting to upload external API RULES from a JSON schema to not only set ROUTING but to also set RBAC/ABAC settings (ie ROLES) for the endpoints.

The ROUTING can be dne with ROUTERFUNCTIONS (I know this) BUT... applying ROLES dynamically as well as the expected request params/response params associated with each ROLE per endpoint requires access to something similar to a 'RequestHandler'

And from my understanding, all these are inner classes, have been made PRIVATE and are combined into one class.

This makes it impossible to extend.

Does this help??

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue labels Apr 22, 2024
@poutsma poutsma self-assigned this Apr 23, 2024
@poutsma poutsma removed the status: waiting-for-triage An issue we've not yet triaged or decided on label Apr 23, 2024
@poutsma
Copy link
Contributor

poutsma commented Apr 23, 2024

These types are internal by design, and supposed to be extended. Instead, they are designed to be composed on.

The main reason for this is backward compatibility: having private types allows us much more flexibility, whereas public types would need to be backward compatible to a far higher degree.

@poutsma poutsma closed this as not planned Won't fix, can't repro, duplicate, stale Apr 23, 2024
@poutsma poutsma added in: web Issues in web modules (web, webmvc, webflux, websocket) status: declined A suggestion or change that we don't feel we should currently apply labels Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) status: declined A suggestion or change that we don't feel we should currently apply status: feedback-provided Feedback has been provided
Projects
None yet
Development

No branches or pull requests

4 participants