Skip to content
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

AND / OR modes for filters #98

Open
mkurz opened this issue Nov 23, 2018 · 0 comments
Open

AND / OR modes for filters #98

mkurz opened this issue Nov 23, 2018 · 0 comments

Comments

@mkurz
Copy link
Owner

mkurz commented Nov 23, 2018

For DeadboltRouteModifierTagsFilter

Deadbolt does support multiple deadbolt route modifier tags for one route, which all have to pass to process the route (meaning it's AND and ignores the deadbolt.java.constraint-mode config). See #96.

We might want to implement an OR mode as well.
However that should be a different config than deadbolt.java.constraint-mode because

  1. before using route modifier tags we were using comments and back than only one comment was allowed (meaning there was no AND mode back then as well of course). Therefore we also don't need
    something like PROCESS_FIRST_CONSTRAINT_ONLY but only AND and OR.
  2. to be able to control annotations and filter differently. Maybe someone want's to OR the filter constraints but AND the annotation constraints.

For DeadboltRoutePathFilter

Same here, we could add AND and OR mode. Right now you can not even add multiple constraints for one route...
What needs to be done is:
In AuthorizedRoute change the constraint field to be a List:

private final List<FilterFunction> constraints;

and maybe even add a mode field to be even able to set a different mode for each route:

private final Mode mode;

and of course add a mode config in reference.conf which defines the default for all routes. (Maybe share/use the same config like DeadboltRouteModifierTagsFilter above uses?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant