Uploaded image for project: 'Repose'
  1. REP-6038

(Repose 9) Make filter chain not static at the time of request (PowerFilterChain updates)

    Details

    • Type: Story
    • Status: Resolved (View workflow)
    • Priority: Medium
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 9.0.0.0, 8.9.1.0
    • Component/s: None
    • Labels:
      None
    • Sprint:
      Sprint 169, Sprint 170
    • Story Points:
      5
    • Capitalizable:
      True

      Description

      Right now the filter chain is determined up front. We'd like to be able to dynamically determine the list of filters while processing the filter chain.

      We will re-write the PowerFilterChain class in Scala to allow us to write proper unit tests for it and be able to add this capability.

      The features included in this class are:

      • Filter chain determination
        • This feature will be getting expanded in another story, so for now, the feature-set will be maintained as-is aside from when to determine when a filter should be run.
      • Filter chain routing
      • Metrics for filters
      • x-trace-request timing tracing
      • Intrafilter logging
        • For now, we'll be maintaining the same behavior, but we'll be changing it in another story.
      • Splitting headers
        • We'll be dropping this feature as this will be moved into a dedicated filter.

      Branching:
      We don't need to put this on a Repose 9 branch since we'll be putting the code side-by-side the existing code. We just won't be calling the code directly yet (i.e. won't be running any functional tests against it at this time). However, if we find it easy enough to be able to run functional tests against this code, then let's consider it (i.e. we can optionally have the new implementation be used instead of the old one).

      Acceptance Criteria:

      • The PowerFilterChain is re-written in Scala and renamed to ReposeFilterChain.
      • The current feature-set of the PowerFilterChain, except for splitting headers, is maintained (i.e. regression tests continue to pass).

        Attachments

          Issue links

            Activity

              People

              • Assignee:
                adrian.george Adrian George
                Reporter:
                mario.lopez Mario Lopez
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: