As described below, one of key component of the Jetspeed-2 portal engine is its request pipeline.

In Jetspeed-2 request are processed through a series of Valve assembled together as a
pipeline.
In Jetspeed-2, a request pipeline performs individual operations to the request.
A Pipeline is made of Valves chained together in a chain of responsibility pattern.
The JetspeedPipeline implementation assembles a ordered list of Valves that are
processed sequentially.


Jetspeed-2 provides various type of Valve as illustrated below:

The above valves serve the following purpose:
| Valve Name | Description |
|---|---|
| ActionValve | Check if PortletAction needs to be processed and process it, if required.
Used in the portlet pipeline. |
| AggregateValve | Invokes all Layout components in render mode to aggregate the generated contents and send the result to the client. |
| CapabilityValve | Identifies the browser and adds a CapabilityMap to the RequestContext. |
| CleanupValve | Looks for JSP pages that were pushed onto the org.apache.jetspeed.renderStack
request attribute, and attempts to include them. |
| LoginValidationValve | Checks if a login attempt failed and determines the cause. |
| PasswordCredentialValve | Checks the PasswordCredential (only once) after a User is logged in and redirects to a change password page if necessary. |
| SecurityValve | Authenticates the user or redirects to Login if necessary, adds the
authenticated Subject to the RequestContext. |