Customizing WebFOCUS Request Processing
WebFOCUS has its own internal security model, encryption techniques, and variable table. Managed Reporting comes with its own repository for storing user credentials and access rights. However, WebFOCUS can be configured and extended to work with a wide variety of third-party products or customized solutions.
The following diagram illustrates the points in the WebFOCUS Client processing at which customization can be implemented.
The WebFOCUS Client has two points at which customized programs can be used to extend its default processing:
- The Java Servlet filter is called before each HTTP request is passed to the WebFOCUS application. The request originates from the HTTP Client (for example, a Web Browser), is sent to the Web Server, and is then passed to the Application Server. The Java Servlet filter can intercept the call from the Application Server to the WebFOCUS application and can optionally alter the request, response, or halt execution before the WebFOCUS application receives it. For example, the Java Servlet filter may be used to perform custom authentication.
- The WebFOCUS Plug-in is called before each request is passed to the WebFOCUS Reporting Server, whether it is a self-service or Managed Reporting request. Plug-in code can also be called prior to passing results from the WebFOCUS Reporting Server to the WebFOCUS Client. Therefore, it gives you an opportunity to preprocess a request from the browser and post-process the response before returning the result to the browser.
To use this plug-in, the customer site must perform some configuration steps such as setting WebFOCUS variable values or editing properties. This plug-in provides methods for copying WebFOCUS variables, application server session variables, and HTTP header variables between the WebFOCUS variable table, the application server session, and the HTTP header. For instructions on using this plug-in, see Copying WebFOCUS Variables Using the WebFOCUS Servlet Plug-in.
If you require pre-processing or post-processing methods not included in the supplied plug-in or for the CGI implementation of the WebFOCUS Client, you can develop your own plug-in (you should extend the class for the existing plug-in so that you can still use its methods). A plug-in for the Servlet version of the WebFOCUS Client must be written in the Java™ language. A plug-in for the CGI version is typically written in the C language, but it can be written in any language that supports the creation of shared objects or dynamic link libraries. Instructions for writing WebFOCUS Servlet plug-ins can be found in Developing Your Own WebFOCUS Plug-in.
On the WebFOCUS Reporting Server, custom programs similar to WebFOCUS Client plug-ins are referred to as exits. The WebFOCUS Reporting Server has two exits that can be used by WebFOCUS:
-
Pre-Verify User ID Exit (PVUIDXT). This exit is used to customize WebFOCUS Reporting Server authentication. It can be used to configure the Reporting Server to authenticate against a third-party repository or to enable a WebFOCUS Reporting Server or hub server to establish a secure connection from another WebFOCUS server or from the WebFOCUS Client without checking credentials (because they have already been verified at an earlier point). This exit can also be used to replace the verified user ID with a user ID appropriate to the WebFOCUS Reporting Server being connected to. For more information, see Developing a Reporting Server Authentication Exit.
-
WebFOCUS DBA Exit. This exit enables WebFOCUS metadata to use replaceable parameters for data source security. It is typically used to limit which values a user has access to in a data source. For information, see Developing a Dynamic DBA Rule.