Package net.shibboleth.idp.profile.support

# Class PathInfoSupportingFlowUrlHandler

java.lang.Object
org.springframework.webflow.context.servlet.DefaultFlowUrlHandler
net.shibboleth.idp.profile.support.PathInfoSupportingFlowUrlHandler

All Implemented Interfaces:
  `FlowUrlHandler`

public class PathInfoSupportingFlowUrlHandler extends DefaultFlowUrlHandler
Extension of standard SWF URL handler that checks for requests in which a valid flow ID is a prefix of the PATH_INFO value, allowing the flow to run with the rest of the path available to it as input.

A deliberate choice is made to do this only for enumerated flows, and not by checking every flow in the registry. This would probably not be harmful, but it's less risky to exclude the SAML/CAS/etc. flows unless we deliberately want to allow them to get additional path info.

## Field Summary

Fields
Modifier and Type
Field
Description
`private Collection<String>`
`supportedFlowIds`
Flows to support.

## Constructor Summary

Constructors
Constructor
Description
`PathInfoSupportingFlowUrlHandler()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`getFlowId(HttpServletRequest request)`
`void`
`setSupportedFlows(Collection<String> flowIds)`
Set an ordered collection of flow IDs to detect.

### Methods inherited from class org.springframework.webflow.context.servlet.DefaultFlowUrlHandler

`appendQueryParameters, createFlowDefinitionUrl, createFlowExecutionUrl, getEncodingScheme, getFlowExecutionKey, setEncodingScheme`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### supportedFlowIds

@Nonnull private Collection<String> supportedFlowIds
Flows to support.

## Constructor Details

### PathInfoSupportingFlowUrlHandler

public PathInfoSupportingFlowUrlHandler()
Constructor.

## Method Details

### setSupportedFlows

public void setSupportedFlows(@Nonnull Collection<String> flowIds)
Set an ordered collection of flow IDs to detect.

Flow IDs that overlap must be ordered with the greater number of path segments first (e.g., flow/thing/one should precede flow/thing).

Parameters:
  `flowIds` - the flow definition registry

### getFlowId

public String getFlowId(HttpServletRequest request)

Specified by:
  `getFlowId` in interface `FlowUrlHandler`
Overrides:
  `getFlowId` in class `DefaultFlowUrlHandler`