When an additional authentication requirement interrupts a request,
the user is prompted to login again.
After successful authentication,
WebSEAL sends a redirect
to the browser for the original resource. Upon receiving this request,
WebSEAL rebuilds the request using the cached data and processes the request with that data.
Cached request data includes URL, Method,
Message-body, query strings,
and all other HTTP headers (including cookies). This data is temporarily
stored in the WebSEAL session cache.
The following diagram
illustrates a typical server-side request
caching process flow:
The user successfully logs in and
submits an HTTP request for
a resource involving a CGI-generated data form. WebSEAL creates a
session cache entry for the user.
During the time it takes
the user to fill in the form, the configured
session timeout for the user expires. WebSEAL removes the user's cache
entry (including credentials) and session ID.
Not aware of
the session timeout, the user eventually submits
the completed form (POST). WebSEAL finds no session cache entry for
the user and creates a new cache entry.
Because WebSEAL finds
no credentials for this user, the user must authenticate. WebSEAL temporarily caches the complete information
contained in the POST request and sends a login form to the user.
The user submits the completed login form to WebSEAL. Authentication
is successful. The cache now contains the user's credentials, as well
as the data from the originally cached request.
WebSEAL returns
a redirect response to the browser containing
the URL of the originally requested resource.
The browser
follows the redirect. WebSEAL intercepts the redirect
and rebuilds the original request (the CGI-generated data form) using
the cached POST data. The restored form is delivered to the URL destination.
Figure 1. Example WebSEAL request caching
process flow