The Portal Manager is a standard servlet application which is deployed into a servlet container (such as Trifork Application Server). It consists of filters, servlets, and beans plus a few supporting components.
Filters analyze and modify incoming requests. They are organized in a so-called filter chain. Before a request is answered, it is processed by all or a subset of the filters in a defined order. On its way back to the user, the filters are applied once more, in the reverse order. The filters may add information to the request and the response, modify both or even block them. Depending on the required functionality, filters can be exchanged, removed or added. The most important filters supplied with the Portal Manager are:
The task of servlets is to deliver content. In the Portal Manager, a
servlet for delivering static (binary) and dynamic data exists, the
ContentServlet
.
As is common with Java web applications, the filters and servlets are
configured by means of the web.xml
file.
Beans are exchangable modules that provide particular functions to filters
and servlets. They are defined and configured by means of the
pm.xml
file. Important beans are, for example, the
userManager
, portletContainer
,
documentManager
, and permissionManager
beans.
In principle, every servlet container also is a web server. Nevertheless, it is currently recommendable to let an HTTP server work as a web server in front of the Trifork server. Because of its popularity and stability we recommend to use Apache HTTP Server. The reasons to use an HTTP server are as follows:
Sometimes, other reasons for placing an HTTP server in front of the Trifork server exist:
RemoteUser
which can then be evaluated by the Portal
Manager.In the following, assuming the configuration specified above (Apache, Trifork, Portal Manager), the process of responding to a typical request is explained. The file requested is an HTML file containing a portlet.
The diagram above illustrates the process for JSPs as well as for binary content.
mod_jk
to the Trifork server.NTLMFilter
, for example. This
filter determines the identity of the visitor and sets the
RemoteUser
.AuthenticationFilter
queries the ADS for the
RemoteUser
and creates a user object.PortletFilter
checks whether the incoming
request is a portlet request. If so, the filter redirects the request
to the portlet container.PermissionFilter
checks whether access
restrictions exist for the requested file. If so, it checks whether the
file may be given to the user and ends the processing of the request if
this is not the case.web.xml
file,
the Trifork determines that the ContentServlet
is
responsible for handling the request.
ContentServlet
requests the file from the
DocumentManager
.DocumentManager
fetches the file via the
FileDocumentSource
from the online directory tree, which was
created by the Template Engine.ContentServlet
determines the MIME type of the document
and delivers the content either as static or dynamic content, depending on the MIME type.PortletContainer
.PortletContainer
sends a render request to the
specified portlet and returns the HTML code it receives as a response to
its request.ContentServlet
delivers the assembled page.AuthenticationFilter
uses it
and adds a cookie for faster authentication at the next request.