Skip to content

AND / OR modes for filters #98

@mkurz

Description

@mkurz

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?)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions