Uploaded image for project: 'Identity Provider'
  1. Identity Provider
  2. IDP-1039

Enable use of PATH_INFO with webflows

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.3.0
    • Component/s: Spring Web Flow
    • Labels:
      None
    • Operating System:
      Multiple

      Description

      It's apparently the general view that SWF and REST aren't compatible because the default URL handling in SWF requires that any path info attached to a URL get treated as part of the flow ID, so you get 404 errors if you attach path info to an existing flow, e.g. /idp/profile/admin/reload-service/foo

      So that was why I did the admin flows with query parameters initially (well, not exclusively, I think it also would have to be /admin/service/foo/reload to make much sense).

      Anyway, the metrics work probably would benefit from REST-style URLs, so I'd like to fix this.

      I have a prototype plugin built that should replace the default SWF FlowUrlHandler that delegates to it unless the path info it sees starts with a set of designated flow IDs, and then it returns the matching flow ID instead of the default behavior, which is to return the whole path info value as the flow ID.

      So, default is for /idp/profile/custom/flow/foo to return a flow ID of "custom/flow/foo" which doesn't exist.

      The plugin will be configured to know that custom/flow is a REST-aware flow, so it will match on that, and return that flow ID alone, and then the flow can run and see that /foo is on the end by skipping over its own flow ID in the path info.

      Bit of a hack but it's reasonable.

        Attachments

          Activity

            People

            Assignee:
            cantor.2@osu.edu Scott Cantor
            Reporter:
            cantor.2@osu.edu Scott Cantor
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 hour
                1h