You are on page 1of 74

Front cover

IBM Lotus Domino no Application Portlet
Configuration and Tips
Configuration and authentication Parsers and rulesets

Examples and sample code

Thomas Delahunty Kornelius Elstner James Ryan Katherine Sewell

ibm.com/redbooks

Redpaper

International Technical Support Organization IBM Lotus Domino Application Portlet Configuration and Tips December 2004

S. read the information in “Notices” on page v. . First Edition (December 2004) This edition applies to Version 1. All rights reserved.1 of the Domino Application Portlet © Copyright International Business Machines Corporation 2004.Note: Before using this information and the product it supports. Government Users Restricted Rights -.0 and Version 1. duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.Use. Note to U.

. . . . . . . . . . . . . . .4 Blocks within the expressions . . . . . . . . . . . . . . . . . . . . . . . . .2. . 4. . . . . . . . . . . . .1 Source and Display tab .3 Output expressions . . . . . . Authentication. Rules . 10 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Authentication . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . .2 HTML parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . 10 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2. . . . . . . . . . .6 Credential vault . . . . . . . . .1 Single sign on setup . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . iii . . . . . . . . .2 Output functions . . . . . . . . . . . . . . . . . . . Chapter 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Input expressions . . . . . . . . . . . . . . vii Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Cache size . . .3 Private slot . . . . . . . . . . . . . . . . . . .1 Setup . . . . 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . .1 Input expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Caching . . . . . . 14 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . .5 Process for applying regular expression rules . . . . . . . . . . . . . . . . . .1 Types of caching . . . . . . . . . . . . . . . 11 2. 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . All rights reserved. . . . . . . . . . . 14 2. . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Cacheable objects. . .2 Shared slot . 15 16 16 18 19 19 21 22 22 23 24 24 25 27 28 28 28 29 30 © Copyright IBM Corp.5 Single sign on . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . 1 2 2 3 3 4 5 6 6 Chapter 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Output expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2. . . . . . . . . . . . . . . . . . . . .1 System slot . . vii Chapter 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Using caching to improve DAP performance . . .2 Access. . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . 11 2.1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . 10 2. . . . . . . . 1. . . . . . . . . . . .1 Authentication . Introduction. . . . . . . . . . . . . .3 Output functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . 2004. . . . . . . . .2. . . . . . . . . . . . . . . . . . . . vi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 No authentication . . . . . . vii Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . .3 Correlation between the rulesets . . . . . . . . . . . 14 Chapter 3. . . . . .4 Process for applying HTML rules . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . . . . . . . . . . . .2 Configuration options . . . . . . . . . 4. . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .v Trademarks . . . . . . . . . . .1 Setup if you have installed Domino Extended Product portlets . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . .3 Edit options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2. . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. 1. . . . . . . . . . 4. .3 Basic authentication . . . .6.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contents Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . Caching . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . .4 Session based authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Regular expression parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0) . . 6. . . . . . . . . . . . . . . . . . . . . . . 33 34 34 34 34 34 35 36 37 39 40 41 42 44 49 50 51 52 52 52 52 53 53 54 55 56 56 56 56 56 57 57 57 57 57 57 58 Appendix B. . . . . . . . . . . . . . . . . . . .2 Setting up DAP . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . .11 Table properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Known issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . .6 Fixing the greedy information page . . . . . . . . . . . . . . .2 Create page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Load issue . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Debug tab . . . . .2. . 6. . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . .4 Fixing the icons . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . Samples. . . . . . . . . . . . . . . . . . . . . . . .2 Error reporting . . . . . . . . . .4 Initialize portlet . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Refresh . . . . . . . . A. . . . . . . . . . 5. . 5. . . . . A. . . . . . . . . . . . . . . . . Additional material .8 Default to user’s mail file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IBM Redbooks . . . . . . . . . . . . . . . . . . . Chapter 6. . . . . . . . . . . . .12 Domino Web Access . . . 6. . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . .1 Install portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Language version issue . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . 5. .Chapter 5. . . . . . . . . . . . . . . Updates to Domino Application Portlet 1. . . . . . . . . . .8 Escalating security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Customized rule sets. . . . . . . . . . . . . . . . . . . . . . . .9 Another sample . . . . . . . . . . . . . . . . . . . . .7 Switching to the HTML parser . . . . . . . . . . . . . . . . .5 New window opening in Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Support for Domino Web Access (iNotes) . .2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Maximize portlet issue . . . . . . . . . A. . . . .1 . .5 Selective MIME types for Rules tab . . . . . . . . . . 59 Using the Web material . . . . . . . . 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Online resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . 59 Related publications . .8 Configuration performance (WPS 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . Appendix A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Locating the Web material . . . . . . . . . . . . . . .1 Anonymous access issue . . . . . . . . . . . . . . . . . .6 Output functions . . . . . . . . . . . . . Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Add portlet to page . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Richtext applet icons. . . . . . . . . . . . . . . . . . . .9 Configuration performance (WPS 4. . . . . . . . . . . . . . . . . . . . . .1 Setting up Domino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . .5 TCP/IP trace proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Exploring the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. .9 New URL re-writing . 61 61 61 61 61 iv IBM Lotus Domino Application Portlet: Configuration and Tips . . . . . . . . . . .6 Alignment in BIDI language configuration and edit modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . 5. . . . . . . . .2. . . . . . . . . . . .7 Performance improvements . . . . . . . . . . . . . . . . . . . . . . .

All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. You can send license inquiries. NY 10504-1785 U.A. The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND. Information concerning non-IBM products was obtained from the suppliers of those products. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. in writing. However. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. therefore. brands. EITHER EXPRESS OR IMPLIED. modify. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. cannot guarantee or imply reliability. and products. serviceability. or distributing application programs conforming to IBM's application programming interfaces. using. it is the user's responsibility to evaluate and verify the operation of any non-IBM product. or features discussed in this document in other countries. program. Any functionally equivalent product. this statement may not apply to you. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. You may copy. THE IMPLIED WARRANTIES OF NON-INFRINGEMENT. 2004. companies. Any reference to an IBM product.S. Some states do not allow disclaimer of express or implied warranties in certain transactions. You may copy. IBM Corporation. these changes will be incorporated in new editions of the publication. INCLUDING. IBM has not tested those products and cannot confirm the accuracy of performance. This information could include technical inaccuracies or typographical errors. or function of these programs. or service.A. program. therefore. To illustrate them as completely as possible. which illustrates programming techniques on various operating platforms.Notices This information was developed for products and services offered in the U. Consult your local IBM representative for information on the products and services currently available in your area. IBM. their published announcements or other publicly available sources. program. marketing. to: IBM Director of Licensing.S. services. and distribute these sample programs in any form without payment to IBM for the purposes of developing. BUT NOT LIMITED TO. The furnishing of this document does not give you any license to these patents. © Copyright IBM Corp. or service is not intended to state or imply that only that IBM product. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. This information contains examples of data and reports used in daily business operations. Changes are periodically made to the information herein. or service may be used. COPYRIGHT LICENSE: This information contains sample application programs in source language. and distribute these sample programs in any form without payment to IBM. These examples have not been thoroughly tested under all conditions. IBM may have patents or pending patent applications covering subject matter described in this document. All rights reserved. compatibility or any other claims related to non-IBM products. North Castle Drive Armonk. modify. IBM may not offer the products. for the purposes of developing. or service that does not infringe any IBM intellectual property right may be used instead. the examples include the names of individuals. program. using. v .

vi IBM Lotus Domino Application Portlet: Configuration and Tips . or both: ibm. in the United States. or both. Other company. product. and service names may be trademarks or service marks of others. Inc.com® iNotes™ Domino® IBM® Lotus® Redbooks™ Redbooks (logo) WebSphere® Workplace™ ™ The following terms are trademarks of other companies: Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems. other countries. other countries.Trademarks The following terms are trademarks of the International Business Machines Corporation in the United States. or both. Linux is a trademark of Linus Torvalds in the United States. other countries.

com/redbooks Send your comments in an email to: redbook@us. Customers have invested heavily to exploit the power of Domino in developing proprietary applications. Domino Application Portlet (DAP) provides the solution. Your efforts will help increase product acceptance and customer satisfaction. browse the residency index. Find out more about the residency program. 2004. collaborative workplace. It facilitates the easy integration of Domino Web Applications into a portal server. All rights reserved.ibm.html Comments welcome Your comments are important to us! We want our papers to be as helpful as possible. This paper will describe DAP in detail and will give practical examples on configuring and customizing this portlet.Preface This IBM® Redpaper discusses the Domino® Access Portlet. JLU Mail Station P099 2455 South Road Poughkeepsie. International Technical Support Organization Dept. You'll team with IBM technical professionals.com/redbooks/residencies. vii . The main question asked by such customers is how do we move our Domino applications into a portal. Send us your comments about this Redpaper or other Redbooks™ in one of the following ways: Use the online Contact us review redbook form found at: ibm. It provides customers with integrated content and applications in addition to a unified. and increase your productivity and marketability. New York 12601-5400 © Copyright IBM Corp. you'll develop a network of contacts in IBM development labs. Domino is a comprehensive application platform.to six-week residency program! Help write an IBM Redbook dealing with specific products or solutions. Business Partners and/or customers.com Mail your comments to: IBM Corporation. and apply online at: ibm. Become a published author Join us for a two. As a result they are understandably reluctant to start again and move towards the benefits of a portal environment. while getting hands-on experience with leading-edge technologies. WebSphere® Portal is a complete portal solution. As a bonus.

viii IBM Lotus Domino Application Portlet: Configuration and Tips .

1” on page 49 discusses specific improvements and updates which have been made in Version 1. proxying the content from the back end servers through to the browser. The Domino Application Portlet acts like a reverse proxy. “Updates to Domino Application Portlet 1. thereby keeping the user within the context and navigational scheme of the portal. It appears to the browser to be the real content server. Introduction The Domino Application Portlet (DAP) integrates the content and technology of existing Domino Web Applications into the Portal environment. The Domino Application Portlet (DAP) channels all requests from the user client (browser) through the portal and on to the Domino HTTP server in the back end. released in September of 2004. it renders the portlets of the Domino Web application within the context of the portal. This document explores the setup and configuration of DAP. Rules-based parsers rewrite the content produced by the Domino HTTP server. caching. user authentication. 2004. Finally there is a description of some known problems we have discovered. It allows customers to insert these existing applications into portlets and display them on a portal server with minimal development effort. All rights reserved. “Samples” on page 33 contains two concrete examples that show how to setup DAP and write rules that tailor it for your own application. Chapter 5. The portlet contains an iframe with an embedded servlet that is responsible for the actual connection and display of the Domino content.1 of DAP. It manages cookies.1 Chapter 1. The rest of this chapter examines the basic setup and gives an overview of the configuration options available. and framing. Most importantly. © Copyright IBM Corp. Chapter 6. 1 . This is followed by a number of sections that provide a detailed examination of these options.

1 platform into a intelligent common user interface served up by WebSphere Portal Server. Attention: If you want to learn more about installing and configuring the Domino Extended Products portlets. refer to Chapter 8 within the redbook Domino 6.html 1 This is true for the standalone version available from the portlet catalog.5. Figure 1-1 Initial DAP window 1. the WAR file is installed and then the portlet is added to a page1.1 Setup DAP is setup like any other portlet.1 and Extended Products: Integration Guide. One of the key portlets included with the Extended Products Portlets included the Domino Application Portlet. 2 IBM Lotus Domino Application Portlet: Configuration and Tips .2. To install DAP onto the portal server you must be logged in with administrator rights on the Portal.1.5.ibm. http://www.5.1 Setup if you have installed Domino Extended Product portlets The Domino 6.1. An example of installing and setting up DAP is given in 5. “Setting up DAP” on page 34.redbooks. Figure 1-2 on page 3 illustrates the tabs where you would see the Domino Application portlet and shows a sample Domino Web application being rendered through DAP.1 Extended Products portlets are an enhancement to the existing WebSphere Portal Collaboration Center portlets and therefore offer the ability to integrate the application functionality of the Domino 6. However in Lotus® Workplace™ DAP is installed with all the other portlets.com/abstracts/sg246357. SG24-6357.

2. The configuration menu may be accessed by clicking the wrench icon in the upper right hand corner of the portlet. Introduction 3 . To configure the Domino Application portlet.2 Configuration options To configure the Domino Application Portlet you must have administrator access rights. In addition to this it also allows the user to direct DAP to look for the Domino content via a proxy server.My Workplace Tab . It contains four main tabs. The show in edit mode check box permits some of these options to be made Chapter 1. Click the Configure portlet properties icon in the top-right area of the portlet window. which are: Source and Display Authentication Caching Rules 1. complete the following steps: 1. This icon looks like a wrench. This is a useful feature if the user wants to see what requests are being made by the portlet to the Domino server.access to fully integrated collaborative portlets Domino Application Portlet Figure 1-2 Domino Application Portlet included as an Extended Product Portlet 1. Finally this tab also lets the user configure the iframe in which the DAP portlet displays the Domino content.1 Source and Display tab The source and display tab allows the user to define which Domino server and database the portlet is to display (Domino Source Server options).

2 Authentication The authentication settings may be modified on the authentication tab of the configuration menu. Note if a user is required to enter a password (for example in Basic Authentication) this will need to be done in the Edit settings. a normal user could configure a DAP portlet to point to his/her mail database without having to have administrator rights for the portlet. These settings define the model DAP will use to authenticate with the Domino server and also where in the Credential Vault the username and password may be found.available to a normal portlet user in edit mode. So for example. “Authentication” on page 9. Figure 1-3 Source and Display UI 1.2. 4 IBM Lotus Domino Application Portlet: Configuration and Tips . A more in-depth description of Authentication may be found in Chapter 2. A number of options may be set including storage in the Credential Vault or use of Single Sign On.

Figure 1-5 Caching UI Chapter 1. A detailed description of the options here may be found in Chapter 3. Introduction 5 .3 Caching Within the Caching tab settings that affect the storage of cached objects from DAP may be set. This caching takes place on the Portal server and use of caching here prevents unnecessary calls to the Domino server. Essentially these mechanisms define where and how objects that are passed between Domino and DAP are stored. “Caching” on page 15.Figure 1-4 Authentication UI 1. While the browser has it’s own caching a user may also define a number of caching mechanisms for the DAP portlet.2.

the essential difference between the two is that Regular Expression Rules are very flexible.3 Edit options The edit options may be accessed by selecting the pencil icon in the top right hand corner on the DAP portlet page. Figure 1-6 Rules UI 1.2. but complicated. 6 IBM Lotus Domino Application Portlet: Configuration and Tips . while HTML rules are simpler and faster. These may include the Domino Database settings and the display settings. but less flexible. This page also contains any of the options that the Administrator decided to allow a normal user to configure.1. “Rules” on page 21. Regular Expression Rules or HTML Rules. Figure 1-7 Edit UI The edit page is where a user must enter their Domino username and password if they are using Basic or Session based authentication. These rules come in two forms that are mutually exclusive. While there is too much detail to go into here and a detailed explanation is given in Chapter 4.4 Rules The rules tab defines the rules that are used to transform URLs and links in the Domino content so that they point to DAP instead of to the Domino server.

Figure 1-8 Edit UI Chapter 1. Introduction 7 .

8 IBM Lotus Domino Application Portlet: Configuration and Tips .

The following topics are addressed in detail: No authentication Basic authentication Session based authentication Single sign on Credential vault © Copyright IBM Corp. 9 .2 Chapter 2. 2004. Authentication This chapter describes authentication models that the Domino Application Portlet (DAP) can use to authenticate with the target Domino server. All rights reserved.

2. session. Refer to 2. “System slot” on page 14 for further information regarding this. When set up for this. When selected. you should generally match the portlet authentication model with the Domino server it is accessing. you can authenticate against a Domino server configured for single-session authentication by specifying Basic authentication in the Domino Application Portlet. Domino asks for a name and password only when a client tries to access a protected resource on the server. and Single Sign On (SSO).2 No authentication If the target server and database application does not require any authentication then the none radio button should be selected. They are none.1. uses basic HTTP authentication schema to ask users for their names and passwords and then verifies the accuracy of the passwords by checking them against a secure hash of the password stored in Person documents in the Domino Directory. if this type of slot is selected. It may also retrieve these values from a credential vault system slot.3 Basic authentication Basic password authentication. There are four different authentication models that the Domino Application Portlet (DAP) can use to authenticate with the target Domino server. It is possible to authenticate by configuring the Domino Application Portlet with a lower model than the Domino server requires. session-based. It then creates a header in the following format: Header name: Header value: Authentication Basic: Ghy753Jk03==??} The header value contains the authentication model being used together with the base64-encoding of the string username:password.2.1 Authentication To modify the authentication settings click the wrench icon and then the authentication tab. or SSO authentication. basic. For example. When connecting to Domino. a DAP user will not be required to enter their username and password in the portlet edit mode. DAP retrieves the username and password specified in the edit mode of the portlet. 2. 10 IBM Lotus Domino Application Portlet: Configuration and Tips . Figure 2-1 Authentication UI Domino may require either basic.6. also known as name-and-password authentication. However.

Authentication 11 . When connecting to Domino. 3. the user will not be required to specify their credentials in edit mode of the portlet. User Web browsers must have cookies enabled since the authentication token that is generated by the server is sent to the browser in a cookie.Upon receiving the request. 2. You can set this up by creating a domain-wide configuration document -the Web SSO Configuration document . You initialize the configuration document by importing LTPA keys from WebSphere (you will need the password specified when generating the keys in WebSphere).4 Session based authentication DAP also provides for session authentication. Protocol Host http:// dominoserver. Press Export keys button. 4. Thereafter the cookie is used for authentication.nsf?Login\&use\\rname=userA\&password=password\&re directto=/mail/userA.in the Domino Directory. This cookie is then used to authenticate the user on further requests from DAP. 2. Session-based authentication differs from basic password authentication in that the user name and password is replaced by a cookie. The URL then becomes: http://dominoserver.(Start → IBM → WebSphere → Application Serverv5. Domino base64-decodes the string to reveal the username and password.5. and then access any other Domino or WebSphere servers in the same DNS domain that are enabled for single sign on (SSO) without having to log in again. When SSO is enabled. 2.lan Port :80 Path and filename /mail/userA. Log on to the WebSphere Application Server Console.0 → Administrative Console) 2. it validates the username and password and sends back a cookie called DomSessAuthId. and a file name that will contain the exported key.5 Single sign on Single sign on (multi-server session-based authentication) allows Web users to log in once to a Domino or WebSphere server.1 Single sign on setup To configure SSO for WebSphere follow these steps: 1. Go to Security → Authentication Mechanisms and click LTPA.nsf When Domino receives this request.nsf If session based authentication is enabled. Chapter 2. DAP constructs a URL using the connection settings specified in the edit or config mode of the portlet.lan:80/mail/userA. which it then validates. then the initial request to Domino is modified to append the username and password in the URL. Enter the password to be used. as shown in Figure 2-2 on page 12. The user name and password is sent over the network only the first time the user logs in to a server.

Press the Save & Close button.. “. Figure 2-3 Domino SSO Configuration 4. 9. 7. by adding a “\” (backslash) before :389. Give the SSO configuration a name (e.g. See technotes Setting up SSO -..com"). Specify the location of the key file that you exported the WebSphere LTPA key in the previous step..domain.1098010 Troubleshooting SSO -.g..In the Current Server Document select the Internet Protocols tab. and then the Domino Web Engine tab.. Launch the Domino Administrator application.1158269). button then select SSO Configuration as shown in Figure 2-3. as shown in Figure 2-4 on page 13. This should contain the name of the current Domino server. 8. 2. 12 IBM Lotus Domino Application Portlet: Configuration and Tips . (You may need to correct the LDAP realm. 6. button. Enter in the value for the Domino Server Names. “LtpaToken"). 5. 10.Figure 2-2 WebSphere LTPA Configuration To configure Domino follow these steps: 1. Open the current server document.. Press the Keys. Press the Create Web (R5). then select Import WebSphere LTPA Keys. Enter in a value for the DNS Domain value. 3. (e.

Chapter 2. Finally. SSO is now enabled between the WebSphere and Domino servers. If no authentication is used in Domino (anonymous access) no credential vault settings are required.Domino Application Portlet uses the default segment only. Vault slots are the “drawers” where portlets. select the name you entered in Step 8. Application server. There are three different types of slots where credentials can be stored and retrieved by DAP. If single sign on (SSO) is used in Domino. you will need to enter the slot type to be used. In addition. for system slots you must also provide the slot name (identifier). access is inherent in the SSO framework and no credential vault settings are needed. Each slot holds one credential. and Portal server. Each vault segment contains one or more vault slots. store and retrieve a user's credentials (for example. restart the Domino server. 2. In such cases.For Session Authentication select Multiple Servers (SSO).Figure 2-4 Domino Server Configuration 11. For Web SSO Configuration.6 Credential vault The Domino Application Portlet uses the WebSphere Portal credential vault to handle authentication if the authentication model in Domino is basic or session-based.The credential vault is organized as follows: The portal administrator partitions the vault into several vault segments. Vault segments can be created and configured only by portal administrators. Authentication 13 .Save the document. login details). such as Domino Application Portlet. 12.

2. The administrator sets the username and password in a new slot via the portlet settings.1 System slot The credentials that are stored in a system slot can be accessed by all users and by all portlets. Credential changes in one portlet instance are reflected in all other portlet instances for that user.6. Users enter login information using the portlet's Edit mode. Please ensure that Vault slot is shared is checked.6. Figure 2-6 System slot 2. 14 IBM Lotus Domino Application Portlet: Configuration and Tips . Whatever slot name is used to create the slot must be entered as Slot identifier in the Domino Application Portlet configuration display as shown in Figure 2-6.6. as shown in Figure 2-5.2 Shared slot Credentials that are stored in a shared slot are accessible by all Domino Application Portlet instances for a given user.this is from WebSphere Portal 5.) Figure 2-5 Credential Vault Settings To edit the Credential Vault settings: Go to Administration → Access → Credential Vault Select the option Add a vault slot.0. They are only accessible by the user whilst accessing the portlet instance that stored the credentials.3 Private slot Credentials that are stored in a private slot are not accessible by all Domino Application Portlet instances for a given user. 2. (Note .

3 Chapter 3. 2004. Caching This chapter discusses caching options for the Domino Access Portlet. 15 . All rights reserved. It discusses the following topics in detail: Access Cacheable objects Cache size Using caching to improve DAP performance © Copyright IBM Corp.

Application Cached objects can be accessed by any user. On each instance of DAP there are various users accessing them. D1 . 3. D1. For example. D2 and D3. but can be accessed only by the user who put them into the cache.UA and D2 .UA The object is accessible by user A whilst accessing either DAP instance D1 or D2.UB . 16 IBM Lotus Domino Application Portlet: Configuration and Tips .2 Access Figure 3-1 on page 17 shows how objects are accessible by different applications and users depending on how they were cached. D1 . User Cached objects are shared by all applications. Shared (least secure) Cached objects can be accessed by any user or application.UA . The different caching types include: User and application (most secure) Cached objects can be accessed only by the user who put them into the cache. regardless of which application or user put them into the cache. The manner in which cached objects are accessed in DAP depends on the caching type selected. D1 .1 Types of caching To modify the caching settings click the wrench icon and then click the caching tab.The object is only accessible by user A whilst accessing DAP instance D1. but only while using the application that put them into the cache. and only while accessing the current application.UA and D1 .3. there are two users UserA (UA) and UserB (UB) accessing DAP instance D1. In this diagram there are three instances of DAP on a particular server.The object is accessible by user A or user B whilst accessing DAP instance D1.

Caching 17 .Figure 3-1 Caching Chapter 3.

in the situation that the list provided is insufficient.. and the part of the cache to store them. order will be used to decide. e. All objects that have an image mime-type.3. It is possible to select more than one part of the cache to be used. Figure 3-2 Caching Shared caching is selected. This is the maximum for all objects in all parts of the DAP cache inclusive. and have an applet mime-type (not shown) are cached in this part of the DAP cache.3 Cacheable objects Here we choose what type of objects can be stored. The default caching configuration for DAP is shown in Figure 3-2. The user also has an option to specify user-defined mime-types. by selecting shared and application caching. and in the case of shared caching. The part of the cache to store the object is determined using the mime-type of the object. The maximum size of each object in the cache is set to 250 kb. you might enter /icons to ensure that only objects whose URLs contain "/icons" will be stored in the shared cache. For example. 18 IBM Lotus Domino Application Portlet: Configuration and Tips . If an object qualifies to be cached into more than one part. This helps you to limit shared caching to objects that are common to all users. There is a maximum of 100 objects in the cache. the string defining the URL of the object.g.

5 Using caching to improve DAP performance The primary way to improve DAP performance using caching is to make use of the Shared cache. the object with the oldest accessed date is removed before adding a new object. "User and Application" will be chosen. Chapter 3. If we compare this with deciding to store objects in the user and application cache. The Shared cache will store objects that are accessible to all users on all DAP portlet instances. Caching 19 .4 Cache size The maximum size of both the cache and the cached objects are configurable. whereby when the size of the cache has reached its maximum. For example. 3. The cache operates in a Most Recently Used basis. this image will be accessible by all subsequent users on any DAP instance without the need to retrieve it from Domino again. allocation should be carefully assigned if space is an issue. and an object qualifies to be cached in both. if both "User and Application" and "Application" caching are selected. Another way to improve performance using caching is to carefully configure the maximum size of the contents of the cache. 4. Figure 3-3 Clear Cache button 3. User and Application User Application Shared For example. This is because it is more secure than "Application" caching. For each user accessing the same resource we must request it from Domino and keep a copy of it in memory. DAP also provides a Clear Cache button. and the maximum size of each object in the cache.The order is: 1. Since the objects are effectively cached in the Portal server's memory. 2. a lot more overhead is required. once a frequently requested image from Domino is stored in DAP’s Shared cache by a particular user on a DAP instance. which allows for the contents of the cache to be deleted. 3.

20 IBM Lotus Domino Application Portlet: Configuration and Tips .

and links to other pages are generally relative to the Domino database. Unfortunately. Rules The Domino server provides the ability to allow users to browse Domino databases over the Internet. in order to tailor the portlet to support a new database application. In this chapter. these topics are discussed in detail: Regular expression parser HTML parser Correlation between the rulesets © Copyright IBM Corp. by the portlet administrator. However. teamroom and reservations. Each parser uses a set of rules to define the appropriate data transformations necessary to redirect the application through the Portal. accessing Domino data through a Portal server does not work in the same way as directly accessing it through an Internet browser. In order to access this data correctly through a Portal server these resources and links need to be redirected through the portlet. such as graphics and applets. discussion. There are currently two available parsers: a Regular Expression parser and a HTML parser. The Domino Application Portlet uses a parser to configure the content returned by Domino.4 Chapter 4. 21 . The supplied rules are designed to cater to the four supported applications: mail. All rights reserved. 2004. References to resources. these rules can be configured.

It treats the entire input (from Domino) HTML page as plain text and tries to match each position to one of the defined rules. The regular expressions are composed of an input expression and an output expression.the dots. then signifies logical NOT Actually.window. or a regular expression to match when the content you are trying to match can change.org/regexp/apidocs/org/apache/regexp/RE.location This will only match that exact text.will not match instances of "parent.1 Input expressions The first component of a Regular Expression rule is the input expression. If within character class. the exact input expression parent.nsf/83997d314a7eae6?ReadForm" action="/mail/user2.html 22 IBM Lotus Domino Application Portlet: Configuration and Tips .window. So the actual input expression to match cases of "parent.apache. The input expression defines the content each rule is to search the text for.1 Regular expression parser The Regular Expression Parser makes use of the Jakarta regular expression parsing engine.window. This expression defines what the rule is to search for within the given input.window\. This is because the input expression contains reserved regular expression characters .location" is: parent\. this input expression: action="(.1.location" within the input text.4. Input expressions can either be plain text.window. which will look for an exact match. which gives us much more flexibility and power when writing rules. For example. To include any of the regular expression characters in the text part of an input expression you must precede them with a backslash1.location. Regular expressions The main matching operators used in the current ruleset are: ( . in most cases we are less sure of what the exact text will be and need to use regular expression to deal with: action="/mail/user1. * ? ) | [] ^ Start a grouping of operators Match any character Zero or more times Use minimum (reluctant) matching End the grouping of operators Logical OR Character class Beginning of a string.*?)" This will match all strings of the type action="<some text here>".nsf/83997d314a7eae6?ReadForm" A separate rule is required for each case. However.location 1 For more details on regular expression composition see the Jakarta Regular Expression API http://jakarta. 4. an input expression of: parent. However.

ibm. This is described in greater detail in 4. usually taking the matched text as input.g.ibm.com®. This functionality is maintained by the transform_uri_all function. Chapter 4. “Blocks within the expressions” on page 24. @proxypath Returns the servlet path that is used to replace the link to the Domino server.com/mydb. These functions transform URLs found within the Domino input. This path would then be used to construct a transformed URL.g.gif. redirecting them from the Domino server through the Domino Application Portlet. a function is required. Output functions are used to perform complicated rule transformations. @host Returns the name of the Domino Server machine on which the current application is located [e.4. The most commonly used functions are the pair of @transform functions.dominoserver.nsf/myfolder/mail. The first block is 1. which generates URLs of the type http://portalserver/wps/PA 11 0/rproxy/$$cGDdv$$. An example result of applying this function is /wps/PA 1 0 69/rproxy.]. 80). @param(n) [where n is an integer] This function returns a string corresponding to the nth block (parenthesized expression) in the input expression. Rules 23 .gif" would be appended to this path. @protocol This function returns the protocol used by the Domino Server (e. @port This function returns the port number used by the Domino Server (e. the second 2 and so on.1.gif. @transform_uri_abs This function only transforms URLs whose path is absolute (beginning with a forwardslash /).g. For example. resulting in a URL of http://dominoserver. http or https). @transform_uri_all This function operates in a similar manner to transform_uri_abs. @parencount Returns the number of blocks (parenthesized expressions) within the input..ibm.2 Output functions In situations where outputting a static string is insufficient to properly deal with the proxying.nsf/myfolder/mail. but it transforms the URL whether it is absolute (beginning with a forwardslash / ) or relative to the current path.. These methods therefore form the basis of the Domino Application Portlet's reverse proxying capabilities.4. In this way the servlet used within the Domino Application Portlet can identify the Domino database to access and the corresponding path of the required resource. if the current path is http://dominoserver. The whole of the matched text is 0.1.It transforms URLs so that they begin with the servlet path and end with an encrypted and encoded string that references the original URL.com/mydb.nsf/myfolder then a URL of "mail.

@baseurl
This is a function dealing with occurrences of URLs within the base tag and is not generally required. These functions are used in the Output Expressions described in 4.1.3, “Output expressions” on page 24.

4.1.3 Output expressions
For each input expression for example:
action="(.*?)"

There is a corresponding output expression, which defines the transformations to perform on the text matched by the input expression. The output expression may be plain text, such as:
action="/mail/user3.nsf/83997d314a7?ReadForm"

Which will, given the input string:
action="<some text>"

This will replace all occurrences of <some text> with /mail/user3.nsf/83997d314a7?ReadForm. In order to deal with the more general case where we want to transform the string based on the input string, an output function (as described in 4.1.2, “Output functions” on page 23) is required. This rule uses two output functions @param(1)and @transform uri all().
action="@transform_uri_all(@param(1))"

The result of applying this rule to action="<some text>" is:
action="wps/PA_1_0_V9/rproxy/__PC_7_0_18L_PI_432667__/<some text>"

4.1.4 Blocks within the expressions
The input expression is divided up according to the groups of parentheses it contains. Staying with the input expression defined in 4.1.1, “Input expressions” on page 22:
action="(.*?)"

We see that this expression has one set of parenthesis. Since there may be more than one set per input expression, the blocks are identified by number. In this example, there is only one set so it is referred to as block 1. Subsequent parentheses blocks would be identified by in a similar fashion by the number 2, 3 etc. These block numbers are used in the output expressions to identify the parts of the string to transform. A specific output function:
@param(block_number)

This is used to reference the individual blocks. So given an input string of:
<form name="myForm" action="/mail/user1.nsf/83997d316273?ReadForm">

This will match our rule, action="(.*?)", as follows:
action="/mail/user1.nsf/83997d316273?ReadForm"

The regular expression within the parentheses of the input expression matches the URL:
/mail/user1.nsf/83997d316273?ReadForm

24

IBM Lotus Domino Application Portlet: Configuration and Tips

In order to refer to the URL within the output expression, we would use the following function call:
@param(1)

Using a more complicated example, the input expression:
<applet name="myApplet" (.*?) codebase="(.*?)" (.*?)>

This will match all instances of applets called myApplet. For one such instance:
<applet name="myApplet" width="250" height="100" codebase="/code" archive="Sample.jar">

The resulting blocks, returned using the @param() function are shown in Figure 4-1. There is also a default block, 0, which refers to the whole matched string.

@param(1) width=”250” height=”100” @param(2) /code @param(3) archive=”Sample.jar” Figure 4-1 Constituent Blocks

4.1.5 Process for applying regular expression rules
The Regular Expression rules are processed according to the order which they appear in the Domino Application Portlet Configuration page. A given piece of text can be transformed only once, by the first rule that matches it. This process means that text is only processed by one rule since once the parser matches a rule, the text is transformed and the parser skips on to the text after the matched input. The process for applying regular expression rules is as follows: 1. Begin at the first character of the input text. 2. Beginning with 1st rule, apply each rule in turn looking for a match. a. If a match is found, do not process further rules. Go to Step 3. b. If no match is found move to the next character in the input text. Return to Step 2. 3. Transform the found text according to the output model for the rule. Move to the character in the input text that is immediately after the found text. Return to Step 2.

Ordering of rules
Due to the method in which the rules are processed, the most specific rule must appear first in the ruleset. Since only one rule can match a given portion of text, if the specific rule appears after a more general one then it will never be ”hit”. This is only an issue for similar rules, which may match a subset of the text matched by other rules. Both of the rules src="(.*?)_gif" and src="icon (.*?)_gif" would match the text src="icon print.gif". Since the first rule that matches is applied, the most specific rule should be placed highest in the list of rules. If a different transformation is required for images starting with the text icon, then this rule needs to be before the more general src="(.*?)_gif", otherwise it will never be applied.In this manner there may be several specific rules to deal with specialized cases and then one general rule to catch all other occurrences of the given text.

Chapter 4. Rules

25

Figure 4-2 Configuration Page Showing Regular Expression Rules

Rules to skip over text
Another feature of the rule processing is that rules can be designed to make the parser skip over portions of the text. A rule may be written which matches the text but that does not modify it. Since only one rule can match a given portion of text, no subsequent rules can be applied and the text remains unchanged. As described in 4.1.4, “Blocks within the expressions” on page 24, there is a default block (0), which refers to the entire matched string. Using the output function @param in conjunction with this block reference allows us to obtain the matched text. By outputting the matched input text, there is no change to the text. For example, if an input expression is:
src="special_icon(.*?)gif"

And the output model is:
@param(0)

Then the matched input text, e.g.,
src="special_icon65.gif"

This will remain unchanged in the output, even if there is a more general rule, such as src="(.*?)", further down the list.

26

IBM Lotus Domino Application Portlet: Configuration and Tips

2 HTML parser In addition to the Regular Expression parser. 4. Since most HTML pages also contain portions of JavaScript. Rules 27 . Chapter 4. A dedicated JavaScript parser is planned for a future release. including spaces. However due to the complexity of the rules required for the Regular Expression parser. As with the Regular Expression rule structure discussed in 4.Figure 4-3 Configuration Page Showing Case-Sensitive Box Case-sensitivity Regular expressions in the Domino Application Portlet are not case-sensitive by default.*?)” Output href=”@param(1)” Note: The input text must match the input expression exactly.1.. the rules used by the HTML parser are designed to be a more user-friendly alternative.) but will always produces a lowercase output. but currently when the HTML parser encounters JavaScript it calls out to the Regular Expression parser to parse the script. In some circumstances we do not want to apply rules to specific pieces of text. However. the HTML parser must also deal with them. a HTML parser has been provided which parses the input text based on its HTML structure. However if the case-sensitive box is selected beside the rule in the portlet configuration then only the case given in the input expression will match. Table 4-1 Regular Expression Rule Showing Input & Output Expressions Input href=”(. since JavaScript is not structured in the way that HTML is. HREF. the HTML parser cannot deal with the scripts itself.g Href. The rule shown in Table 4-1 will match any possible capitalization of href (e. “Regular expression parser” on page 22. but you can select case-sensitivity for the input expression of any rule. This parser also uses a set of rules for data transformation. the HTML rules are divided into an input expression and an output expression.. However these two expressions have been split into smaller constituent parts.

If such rule functionality is required then the Regular Expression parser must be used.4. The output expression for the HTML rules is in two parts: Output Attribute Output Value HTML Rules are not allowed to search for attributes of one tag and then modify the values of different tags so there is no need to have a Tag component in the output expression. However. to allow some flexibility one wildcard character is allowed .The functions listed below have been described in 4. This is either used to signify any within one of the input components.1.3 Output functions The output functions provided for use with the HTML parser are mostly consistent with those available for the Regular Expression Parser. By specifying the Tag name. If all three components of the input expression match the input string then the rule is applied.2. “Output functions” on page 23. Once a match has been found the attention switches to the output expression to decide what transformations to invoke. rules are only applied if that tag is found within the input HTML page. @transform_uri_abs 28 IBM Lotus Domino Application Portlet: Configuration and Tips . Since the HTML rules were designed to be easier to read. 4. For example.2.2. The input expression requires two additional components which identify the particular tag attribute/value pairs to search for. An illustration of this is shown in Table 4-2. we tried to keep each component as simple as possible.1 Input expression The input expression has been subdivided into three components: Tag Input Attribute Input Value The Tag component specifies the particular HTML tag that this rule is applied to. a rule may transform the value of a particular attribute of a particular tag. a rule specified on the param tag may use the name attribute to locate the appropriate portion of HTML. but this is not a requirement. It comprises text optionally combined with a single output function. in the case of Input Value. but it is the value attribute that will require modification.the *. or. negating the need to understand regular expressions. in conjunction with some text to signify any text beginning with. The Output Value specifies the value for the output attribute. we can specify the value of the given attribute using the Input Value component.2 Output expression Due to the structure of the HTML rules.2. As a final level of detail. The Output Attribute specifies the attribute name for the output. Often this is the same as the input attribute name. The Input Attribute specifies the attribute. that the rule is to be applied to. of the given tag. Table 4-2 Sample HTML Rules Tag Input attr param a name href value data * Output attr value href value @transform uri all @transform uri abs 4.

Rules 29 . Table 4-5 on page 30 illustrates some possible text matches based on the rules described in Table 4-4 If rules are identical. An example of using this function is shown in Table 4-3. Rule C is similar to Rule B. This means that ’Database2’ and ’Database list’ will also match. Input Attribute and Input Value combination.4 Process for applying HTML rules For a given Tag. Table 4-3 Sample HTML rule using the @script function Tag Input attr * onclick value * Output attr onclick value @script 4. the rule that appears first in the configuration is used. This is usually used in cases where the value will have to be modified. such as the value of a href attribute. Rule B is slightly more flexible. This rule is used to transform the JavaScript value of the onclick attribute. it will match all text beginning with ’Database’. then the value of that attribute is transformed using the @script function. except for their Output Attribute and/or Output Value. a rule which uses the wildcard * to signify any tag is very general. The more detail a rule gives. There is one output function which is specific to the HTML parser. the @script function. This function is used to call out to the Regular Expression Parser when JavaScript is located within the HTML page. This mirrors the functionality of the Regular Expression parser. Finally. Rule A will only match the exact text ’Database’. then Rule A is the most specific. In the case that more than one rule matches a given combination. For example. see Figure 4-4 on page 30. Rule D is the most general since any value will match. all variants of this text will be ignored. It will match ’Database’. Table 4-4 Example rules Rule Rule A Input value: Rule B Input value: Rule C Input value: Rule D Input value: Value Database Database* Data* * If four rules are identical except for the Input attribute values shown in Example 4-4.2. ’Database list’ and ’Data form’. while Rule D is the least specific. a rule which specifies the tagname is more specific. This applies to the attribute and value components as well. but since more of the text has been replaced by the wildcard it is more general. where for any tag if an attribute called onclick is found.@transform_uri_all @host @proxypath @protocol @port @baseurl The @param(n) and @parencount output functions are specific to the Regular Expression parser and are not available for use with the HTML parser. only one rule can be applied. Chapter 4. where only one rule can be applied to a given portion of input text. the most specific rule available is applied. the more specific it is. In contrast.

2. the Regular Expression rule shown in Table 4-6 is equivalent to the HTML rule shown in Table 4-7 on page 31.*?)\1 Output src=@param(1)@transform uri abs( @param(2))@param(1) 30 IBM Lotus Domino Application Portlet: Configuration and Tips . This has led to some differences in the rulesets. the Regular Expression and HTML parsers function in different ways and so the rulesets for each one are structured differently. “HTML parser” on page 27. For example.Table 4-5 Example text matches for rules in Table 4-4 on page 29 Text Database Database list Data form MyString Matched Rule A B C D Figure 4-4 Configuration Page Showing HTML Rules 4. Table 4-6 Regular Expression rule Input src=(”|’)(. as a whole there is a general correlation between the rules as the parsers are basically performing the same function.1.3 Correlation between the rulesets As described in 4. However. “Regular expression parser” on page 22 and 4. Both of these rules search for the HTML attribute src with any value and output the result of applying the transform uri abs function.

However. Table 4-7 Equivalent HTML rule Tag Input attr * src value * Output attr src value @transform uri abs Chapter 4. this simplicity also means a lack of flexibility when defining a new rule. the decision over which parser best suits your needs may depend on the complexity level of the rules you will need. it is easy to see the relative simplicity of the HTML rules versus their Regular Expression counterparts. For this reason. Rules 31 .When the rules are compared in this way.

32 IBM Lotus Domino Application Portlet: Configuration and Tips .

domino.X server (in this document we’ll give it the fictitious name domino.domain. We aim to cover as many features of DAP as possible. In order to complete the following tutorial you will need the following: 1.nsf (supplied with this document). called Sample. 33 . All rights reserved. Samples Now that you have acquainted yourselves with the theoretical aspects that underlie the workings of DAP.com) We will host a sample application. 2004. so we will gradually increase the complexity of the setup.5 Chapter 5. on the Domino server and configure DAP so that the same application will be visible through the portal. © Copyright IBM Corp. you are ready to delve into a practical application. A portal server (this one we call portal.com) 2. A Domino 6.

domain. otherwise you have to install the portlet first. under Portlets click Install.2 Setting up DAP The portal server needs to have DAP installed. so the easiest way to find DAP is to reduce the list by entering some search criteria. So click the MyPortal link followed by the New Page button. Chances are that there are a lot of portlets installed on your system. verify that this is the case through the administrative console. log into the portal as an administrative user through http://portal. the list should reduce to a handful of portlets. give it a nice name. We suggest you create the new page under the MyPortal label. then select Portlets -> Manage Portlets.2 Create page Now we need a page to host the portlet. If that is the case you can go ahead and create a page to host the portlet. This should be enough to expose the application through http://domino. You can now look at a running instance of DAP by navigating to the MyPortal section and then to Sample Domino Application Page. browse to the archive.war). You should see a message that confirms the installation of the portlet. 5.nsf) needs to be copied into the Data folder of the Domino server. for example “Sample Domino Application” and confirm with OK. once we’ve verified that all other parts work as intended.5.3 Add portlet to page To add the portlet to the page you click the pencil icon in the page list of the MyPortal section.com/Sample. tick the selection box next to “Domino Application Portlet” and click OK. we will keep all authentication off. 5. We will then enable this later. Note that we are connecting to the portal directly. keep the default layout for the page and click the Add Portlet button. Most out-of-the-box portal installations will have this section set up by default. Navigate to the Administration section. 5. to do this click ‘Portal User Interface’ and then Manage Pages on the navigation bar on the left.2. you should see a window similar to Figure 5-1 on page 35. 5. and finally confirm the action by clicking the Install button. The system should confirm the success of the last operation and to complete the addition of DAP to the page click the ‘Done’ button.domain.com:9081/wps/myportal.1 Install portlet To do that you will need a copy of the standalone portlet archive (dap. Initially. By searching for the word ‘domino’ in the portlet titles. To check this.2. 34 IBM Lotus Domino Application Portlet: Configuration and Tips .1 Setting up Domino The sample database (Sample.nsf. you will be presented with a list of all the available portlets. click Next. the list should include an entry for a “Domino Application Portlet”.2. this will lead you to the portal layout editor. depending on your setup you may omit the port and connect to the portal via the HTTP server.

the actual name of the Domino server that you are using) as the host and Sample.4 Initialize portlet All that remains to do is to point DAP to the sample application on the Domino server.Figure 5-1 Working DAP setup. Now you should see a window similar to Figure 5-2 on page 36.2. Chapter 5. If you made any changes here click Save and then Close. DAP defaults to Basic authentication so you will probably have to select the None option. click the pencil icon and on the following page enter domino. ensure you followed all the steps outlined above. You must also check that authentication is set to None. then on the Close button. portlet not yet configured 5. If that isn’t the case.nsf in the path and filename box. Samples 35 .com (or rather. to do that click the wrench icon to enter the portlet configuration mode and select the Authentication tab. Click first on Save.domain.

So point your favorite browser to http://domino. The base rules that the portlet ships with will ensure that most of the application will work.Figure 5-2 Sample application as seen through DAP . yet we will focus on the bits that do not to illustrate DAP’s modus operandi.com/Sample.note how the applet images failed to load 5. as you will see it will require a good dose of instinct and plenty of experience to successfully identify the fragments of a page that require some translation to be viewed through DAP. In the following paragraphs we hope to introduce you to the art of rule-making. as there are a couple of issues with the one seen through the portal. 36 IBM Lotus Domino Application Portlet: Configuration and Tips .domain.nsf and notice how there are some icons in the applet’s view area (Figure 5-3 on page 37).3 Exploring the application You should also make yourself familiar with the application as seen directly from the Domino server. Also observe the behavior of the ‘Info’ button of the sample application both when seen through DAP and when seen directly from Domino. compare this with the portalized application (Figure 5-2).

right-click the frame and select ‘View Source’.Figure 5-3 The sample application as seen directly from Domino 5. To view the markup of the two pages.class" name="myApplet" archive="testApplet/Sample3. This is what we saw on our test servers: From Domino: (Example 5-1) Example 5-1 Example of code shown through Domino <applet width="250" height="100" codebase="/Sample.4 Fixing the icons As we mentioned the application viewed through DAP is missing two icons. Samples 37 .gif"> <param name="URL2" value=""> </applet> Chapter 5. being an applet the initial strategy is to inspect the applet’s tags both when viewed directly on Domino and when viewed through DAP.nsf/b2a27ff60012977280256eaf004e2b87/$FILE" code="myPack/TestApplet1.jar"> <param name="URL1" value="/icons/abook.

gif” image from the Portal server which will of course fail.gif"> <param name="URL2" value=""> </applet> As you can see the codebase attribute of the applet tag is successfully reverse-proxied. If you look at the frame’s markup you should see that it has been reverse proxied: <applet width="250" height="100" codebase="/wps/PA\_1_0_69/rproxy/__PC_7_0_CL_PI_714731__/$$U 2FtcGxl$$. Enter the following in the newly created boxes: Figure 5-4 Insert Rule Icon Regular expression: <param name="URL1" value="(.setImage2("/icons/actn001.Through DAP: (Example 5-2) Example 5-2 Example of code shown through DAP <applet width="250" height="100" codebase="/wps/PA_1_0_69/rproxy/__PC_7_0_CL_PI_751987__/$$U2 FtcGxl$$. When the page is viewed through the portlet it will request the “/icons/abook. } </script> 38 IBM Lotus Domino Application Portlet: Configuration and Tips . What we need is a rule that will reverse-proxy the value of the URL parameter.gif"). Ensure that the rule type is set to ‘Regular Expression’.*?)" Output model: <param name="URL1" value="@transform_uri_all(@param(1))" Now click Save followed by Close.jar"> <param name="URL1" value="/wps/PA_1_0_69/rproxy/__PC_7_0_CL_ PI_714731__/$$aWNvbnMvYWJvb2suZ2lm$$"> <param name="URL2" value=""> </applet>} Unfortunately the second icon did not appear. Scroll to the bottom of the page and click the insert rule icon (Figure 5.jar"> <param name="URL1" value="/icons/abook.4) of the last rule.class" name="myApplet" archive="testApplet/Sample3.class" name="myApplet" archive="testApplet/Sample3. and we urge you to find the corresponding rule in the standard ruleset that is responsible for this translation. namely the “abook.nsf/b2a27ff60012977280256eaf004e2b87/$FILE" code="myPack/TestApplet1.applets["myApplet"].. A second more thorough look at the frame’s markup should identify the following section towards the end of page in need of translation: . You should also note that the URL1 parameter that is passed to the applet obviously refers to a resource on the Domino server.nsf/b2a27ff60012977280256eaf004e2b87/$FILE" code="myPack/TestApplet1. you should now see a small book icon in the applet’s box.. } function go() { document. click the spanner icon of the portlet and select the Rules tab.gif” icon in the /icons folder.

A typical test setup would look like the one shown in Figure 5. Figure 5-6 Set-up to capture HTTP traces with the use of proxy trace utilities Chapter 5. Append the following rule to the ruleset: Regular expression: \.setImage2("@transform_uri_all(@param(1))") After saving you should see both icons in the applet’s box..6. you will find that generally it is considerably trickier to identify the text that requires processing by the parser. During development of the portlet we found that TCP tracing utilities are exceedingly useful for debugging purposes.com’.5 TCP/IP trace proxies Admittedly this example is quite simple. WebSphere Studio Application Developer includes a special type of server a “TCP Monitor” which you can use as a tracer but you can also find freeware utilities on the Internet that offer the same functionality. Figure 5-5 Display of both icons in applet’s box 5. These utilities act as a proxy and let you view a trace of all the request and responses between the browser and the portal and also between portal and the Domino server. assuming that the workstation that you are working on is ‘computer. as shown in Figure 5-5.. Refer to the WebSphere Studio documentation to set up a TCP Monitor.setImage2\("(.*?)"\) Output model: . Clearly the applet is being modified programmatically and we need to reverse-proxy the string that is being passed to it through the setImage2 method.domain. Samples 39 ..

4. 5.com:9081 Accept: text/html.domain.open(myurl3. image/jpeg../Info&quot. can be configured to route all its requests to a proxy. Internet Explorer’s JVM does not support this but Sun’s Java™ plugin does. For the above example setup we would set the proxy source server host to ‘computer.domain.location. you can find the relevant options in the Java plug-in control panel under the ‘Proxies’ tab.(pathname .&quot. here is what the button’s tag looked on our test setup: <input type="button" onclick="var pathname = window.gif has not been defined</H3><BR> <I>IBM WebSphere Application Server</I> The mere presence of a 404 indicates that something is amiss. var path = pathname. Typically you would run the trace utility on your local machine.2 Proxy-Connection: keep-alive Failing with: HTTP/1.2 02 Host: portal.substring(0. image/gif. window. There is also a whole group of other problems that would be very hard to diagnose without the help of a trace.2." value="Info"> 40 IBM Lotus Domino Application Portlet: Configuration and Tips .com:9081/icons/actn001.). We can’t stress enough how useful a HTTP trace can be when debugging a DAP-ed application._top&quot. For example if the applet of the sample application used a default location to find its icons it would not be immediately obvious that the icon is even being requested. So make sure your plugin is configured to route HTTP requests to the proxy. q=. DAP. like a browser.0 Content-Type: text/html Content-Length: 159 <H1>Virtual Host or Web Application Not Found</H1><BR><H3> The web group /icons/actn001.com’ and the port to ‘8081’. var myurl3=path+&quot.6 Fixing the greedy information page One thing you might not have noticed is that when you click the “Info” page of the application through DAP it will grab the entire page and seemingly leave the portal.domain.You will need to configure your browser to route its requests to a proxy.pathname. this option is available in the configuration view under the ‘Source and Display’ tab where you can specify the ‘Proxy Source Server’.0) Java/1. thus you would point your browser to ‘localhost’ and whatever port you have configured your proxy trace utility to listen at.lastIndexOf(\singlequote .0 (Windows 2000 5.1 404 Not Found Server: WebSphere Application Server/5. *. for instance it is often necessary to inspect data that is posted as a consequence of a form submission or it may happen that the wrong output model function is used to transform a particular URI which in turn results in some funny requests that without a trace would remain undetected.gif HTTP/1. We will have to look at what exactly happens when the “Info” button is clicked. */*. If a proxy trace is in place we would see something like: GET http://portal. Note also that most Domino applications make use of applets which may make their own network requests.nsf\singlequote )+5)).1 cookie: JSESSIONID=000026kWPj0CPiVpb9-ZtxEeZgU:-1 User-Agent: Mozilla/4. q=.

for example if elsewhere on the page we had a script with a variable named ‘about to topple’ that would be transformed into ‘about to ifaple’ which will in all likelihood prevent the page from working correctly. The problem is that the rule ‘ top’ is very general and it may well match some text that we do not want to translate. Thus by adding the rule: Regular expression: _top Output model: ifa We will obtain the desired behavior. The above example is somewhat contrived. instead we want the target to be “ifa” which is the IFRAME containing the reverse proxied page.7 Switching to the HTML parser The three rules above have of course corresponding rules in the HTML parser. and the rules used to fix far from ideal.Obviously a series of JavaScript instructions are executed upon a click which assemble a URL from the current location and then the browser is then sent to it. we would have to add a rule with ‘about to topple’ as both regular expression and output model with a higher priority than the ‘ top’-only rule to prevent it from being garbled. Chapter 5. The other two rules are identical as they are processed by the javascript parser. This is not quite what we want. 5. so you can append them verbatim into the Java Script Rules section of the HTML parser configuration. in this case you will have to provide pass-through rules for all the instances in which it matches something it shouldn’t. Sometimes it will prove too difficult to come up with regular expressions that are sufficiently discriminating. Notice how the target frame for this operation is “ top”. Samples 41 . If the text ‘ top’ appears anywhere in the markup it will be translated. In the example above. To try these out switch to the HTML parser and add the following rule: Input match: Tag param Input attribute name Value URL1 Output: Output attribute Output value value @transform_uri_all This is the dual of the first rule we added for the regular expression parser.

8). We will now proceed and ensure users are authenticated when they access a database through DAP. Using the Domino Administrative console modify the ACL so that Anonymous access is disabled for the Sample.Figure 5-7 Requiring authentication. Also ensure that session authentication is disabled in the server document under Internet Protocols → Domino Web Engine.nsf database (see Figure 5-7) and add one of your Domino users to the ACL1.8 Escalating security To start off with we had no security enabled. Anonymous access is set to ‘No Access’ 5. 1 If you get insufficient rights when modifying the ACL you may need to modify it locally before starting the Domino server 42 IBM Lotus Domino Application Portlet: Configuration and Tips . You should now see an error message when viewing the database through DAP (Figure 5.

Samples 43 . The session authentication model is slightly more secure in that the credentials are transmitted to the host only once.Figure 5-8 Domino requires authentication but DAP is not yet configured to supply credentials To solve the situation we must set the corresponding authentication method for DAP. so navigate to the Authentication tab in the portlet’s configuration and select the basic Authentication model (see Figure 5-9). Chapter 5. once these are saved you should see the sample application as previously. It is not advised to use this authentication model if the communication channel between the Portal and the Domino server is not secured because the credentials are transferred unencrypted with each request. open your Server Document in Domino Administrator or WebAdmin and under Internet Protocols → Domino Web Engine set Session authentication to Single Server (see Figure 5-10 on page 44). Please refer to the chapter on authentication for a more in-depth description of the basic authentication scheme. Figure 5-9 Setting up DAP to use basic authentication Now we only need to specify the credentials. You will see an error message similar to the one you saw earlier (see Figure 5-8. making it trivial for an eavesdropper to intercept them. Click the pencil icon and enter the username and password of a user in the database’s ACL. so browse to DAP’s configuration page and switch the authentication model to Session. To enable this. this is because the Domino server is not configured to accept session authentication yet).

supplied with this document. 5. but the applet lotus.ntf template) on the same Domino server that we used previously.nsf. When you click the Export button you will be asked to specify a file name and location. For this example you will need to import a custom ruleset.apps. DAP will now use the credentials that you used previously but instead of re-transmitting them with every request it will re-transmit only the authentication token it received from Domino. called Sample2Rules.xml and note where the file will be saved. Enabling SSO is somewhat more involved we refer you back to the chapter on Authentication where you can find instructions on how to set up SSO between WebSphere and Domino. (Figure 5.xml.9 Another sample In this second example we are going to work with a mail database (instantiated from a mail6.ActionBar has failed to load. To export a ruleset open the configuration view by clicking on the wrench icon and click the Rules tab. Once you have completed all these steps view the page you just created and notice that the HTML has loaded. set up a new page with the Domino Application Portlet and point it to mail database. You should also first save a copy of the original ruleset just in case you need to restore the portlet to its original state.11) 44 IBM Lotus Domino Application Portlet: Configuration and Tips . To import the ruleset for this sample. simply click the Import button and then browse to the file you downloaded earlier.notes.actionbar. for example you may enter OriginalRules.Figure 5-10 Enabling Domino Session authentication Save the document and restart the HTTP task to make the change effective (either restart the Domino server or type tell http restart in the console). We will assume that you created the database under mail/username.

Chapter 5.com:9081/domjava/actionbar. So here is what we found in our test setup: Request: GET http://portal.1 404 Not Found Server: WebSphere Application Server/5. The offending request was for the URL: http://portal. we can see that the request for actionbar.2.domain. */*.2 User-Agent: Mozilla/4. image/jpeg.jar has generated a FileNotFound Error.Figure 5-11 The action bar applet failed to load Like in the previous example. Samples 45 .com:9081 Proxy-Connection: Keep-Alive Cookie: JSESSIONID=0000XGb_2MNQTpdvV_IhKLZd4WK:-1.jar HTTP/1.jar. *.0 Accept-Language: en-IR Accept: text/html.0 Content-Type: text/html Content-Length: 192 Connection: close <H1>Virtual Host or Web Application Not Found</H1><BR> <H3>The web group /domjava/actionbar.com/domjava/actionbar. MSIE 6. image/gif.domain.0 (compatible.domain. q=. the principal tool that we will utilize to debug the application will be tracing. q=.0. Win32) Host: portal. so you will need a setup as described in the previous section to be able to inspect the requests and responses.jar has not been defined</H3><BR><I>IBM WebSphere Application Server</I> By examining this trace of the request/response interaction between the browser and the Domino Application Portlet. wcp-context=wpsadmin@1@base Response: HTTP/1.

the applet is located on the Domino Server not the Portal server.notes.actionbar. which resulted in a request for /dom-java/actionbar. So: <applet name="dominoActionBar" code="lotus. we need to transform this URL to reflect this. This rule seeks out all text matching: codebase="<anything>" And transforms ”<anything>” to point to the portal server.ActionBar.apps. we can see that the location of the applet is /domjava. Looking at the source code for this page shown in Figure 5-12. so it can’t be found.However. The output function @transform_uri_abs can perform this redirection. this rule transforms /domjava into something like: "/wps/PA_1_0_55L/rproxy/__PC_7_0_5BT_PI_891457__/$$ZG9tamF2YQ==$$".class" codebase="/domjava" archive="actionbar. Since we are redirecting through the Portal Server.jar" mayscript> Becomes: <applet name="dominoActionBar" 46 IBM Lotus Domino Application Portlet: Configuration and Tips . Figure 5-12 The original source.*?)" => codebase="@transform_uri_abs(@param(1))" Figure 5-13 The HTML markup of the reverse-proxied page As shown in Figure 5-13. So our new rule is: codebase="(.jar to the Portal server We need a rule which takes the value of the codebase attribute and changes it to redirect it to the portal server.

ActionBar. the applet can be found and loads properly (Figure 5-14).jar" mayscript> With this new rule.notes.actionbar.class" codebase="/wps/PA_1_0_55L/rproxy/__PC_7_0_5BT_PI_891457__/$$ZG9tamF2YQ==$$" archive="actionbar.apps. Figure 5-14 Now the action bar displays correctly Chapter 5. Samples 47 .code="lotus.

48 IBM Lotus Domino Application Portlet: Configuration and Tips .

All rights reserved. 2004. Updates to Domino Application Portlet 1.1.1 This chapter describes the modifications and new features present in the release of the Domino Application Portlet Version 1. © Copyright IBM Corp. which was released in September of 2004.6 Chapter 6. 49 .

You will see a link to the source HTML returned by the Domino server (Figure 6-3 on page 51) Transformed HTML a link to the source HTML after transformation (Figure 6-4 on page 51) Figure 6-2 Debug Requests 50 IBM Lotus Domino Application Portlet: Configuration and Tips .1 Debug tab In the configuration section there is now a debug tab. or failed (red).6. Here you can quickly locate the transformed text and identify the rule responsible for the transformation. which allows you to see the HTML returned by Domino.(Figure 6-2) For each request you are given the following information: Time of each request Request URL shows the request itself Response code shows whether the request to Domino succeeded (green). both before and after transformation. was redirected (orange). you can see the Domino source HTML. and gives the relevant response code Content type is the mime type and character set of the content Additionally. Figure 6-1 Debug Preview Clicking on the Requests button returns a page which gives details of all the recent requests.

Figure 6-4 Debug Transformed 6. This error arose from an incorrect name in the path variable in the edit settings. Figure 6-5 Improved Error Reporting Chapter 6. Hovering over the blue text displays a message that tells you which rule will be applied. Figure 6-3 Debug Source Figure 6-4 is the Transformed HTML.2 Error reporting Improvements have been made to the error reporting mechanism. Hovering over the blue text displays a message that tells you which rule was applied. Updates to Domino Application Portlet 1. text that has been transformed by the parsers is colored blue. For example Figure 6-5 shows how DAP deals with an error code returned as part of a response from the Domino server. DAP now provides the user with possible reasons for the errors and suggested fixes.Figure 6-3 shows the result of clicking on the Domino Source HTML link.1 51 . Here DAP has correctly suggested that the user check that the path and filename are correct in the Edit or Config settings. Again. This time you see the results of applying rules to the text. Text that will be transformed by the parsers is colored blue.

resulting in improved performance as only relevant files will be processed. This will improve performance if a user is only using one application.6 Output functions For those users interested in writing their own rules there are a number of new output functions available: 52 IBM Lotus Domino Application Portlet: Configuration and Tips .ntf) reservationsD6. The following rule set files are shipped with Domino Application portlet. 6.ntf) teamroomD6.xml (resrc60. To provide DAP support for iNotes 5 or 6 replace your existing ruleset with the relevant ruleset as outlined above. The name of the appropriate templates are shown in parentheses.3 Customized rule sets In DAP 1. Each rule set is designed for a particular Domino template.xml) containing the rules for all the supported applications (except iNotes™). default rules.ntf) and mailD5.xml (teamrm50.xml (discsw6. MailD5. The default ruleset is also available (default_rules. New customized rulesets can be imported in the rules section in the configuration by clicking the Import button. Figure 6-6 Selecting Mime Types 6.xml (discsw50.xml (teamrm6.xml (resrc50.ntf) discussionD6.xml.xml (mail6.ntf) and discussionD5.ntf) iNotesD6.1 each supported Web application now has its own ruleset e.ntf) and iNotesD5.xml (iNotes5.ntf) 6.4 Support for Domino Web Access (iNotes) As explained above there are now rulesets for individual applications.ntf) and teamroomD5.5 Selective MIME types for Rules tab On the Rules tab the user can select/deselect mime types (Figure 6-6).xml (iNotes6.ntf) and reservationsD5. Only files of the selected mime types will be parsed.g.xml (mail50.xml (suitable for all templates except iNotes) mailD6.6. Included among these are two rulesets that supports Domino Web Access application (iNotes).

The management of network connections has also been improved. @transform server soft path() This is available only for the regular expression parser. however the path does not include the server URL at the beginning. 6.1 53 . These services are disabled by default. If "Default to user's mail file" is enabled and a user has not yet specified their credentials then the View mode will consist of a login form. for example user1. In a typical scenario the administrator would specify the host in Config Mode and hide the Domino Source Server settings from the Edit mode.X. 6. this function always returns the iframe name. Changes in the UI have improved the speed when switching between tabs on the Configuration page. It is important to leave the "Path and filename" empty as any value specified for it in either Configuration or Edit mode will override whatever path has been looked up in the directory. When users log into the portal for the first time they will have to enter their mail file credential. Whereas in previous releases.@path() or @path(HTML parser) This returns the name of the Domino database. It returns the path to the proxy servlet prefix.nsf @transform parent uri abs() or @transform parent uri abs(HTML parser) This returns the proxy portlet ID with the input added to the end. later logons will bring them straight to their Inbox. DAP needs Chapter 6.8 Default to user’s mail file Often users do not know the path to their mail file and it is generally inferable from their username. Its throughput has been substantially increased and the performance is now roughly independent from the number of rules that the parser has to match against. Once some credentials have been supplied the view will display the Inbox. For the HTML parser. It is used to allow pages to target the iframe. This feature is only available under WebSphere Portal 5. Note that a host must be specified. To enable the automatic mail file lookup the administrator must tick the "Default to user's mail file" check box in the Portlet Configuration view (Figure 6.7). Figure 6-7 Default to Users mail file For the lookup to work the right Collaborative Service must be enabled. the JavaScript attribute top was replaced with ifa. refer to the Portal Infocenter for details on configuring them.7 Performance improvements There have been changes made to improve the performance of the regular expression parser. this has resulted in Web applications that feel noticeably faster. DAP can now look up a user's mail file by using Portal's Collaborative Services. Updates to Domino Application Portlet 1. it is now replaced with @transform parent uri abs( ifa).

This can be done by setting the portlet parameter "disable_cross_server_urls" to "yes" via the Portal Administration console in the Manage Portlets section.com # for most set-ups these do not need to be changed CS_SERVER_DOMINO_DIRECTORY_1. but in many situations the link would fail to work for example if the target server was protected by a firewall that interdicted connections from external sources.1 looks at links and if they appear to be links to Domino databases then it will rewrite them.properties effective the Portal server needs to be restarted. In DAP 1.com. DAP 1. The values that need to be set are: # this is false by default CS_SERVER_DOMINO_DIRECTORY. 54 IBM Lotus Domino Application Portlet: Configuration and Tips . 6.0 links in documents are generally not rewritten as they are typically entered as complete URLs.server.CSEnvironment.enabled=true # change this to your Domino server CS_SERVER_DOMINO_DIRECTORY_1. you expect the browser to move to that location and you would thus leave the portal.port=389 CS_SERVER_DOMINO_DIRECTORY_1. Given that the links are not rewritten.0 link rewriting behavior. as you read the mail through DAP and click on the link. If your friend wants to send you a link to a document in a TeamRoom on another server the same happened in DAP 1. Clicking on those links will keep the target application reverse proxied through DAP. to do this edit the Collaborative Services configuration file . it is possible to turn this feature off and revert to the old 1. Although it is possible to enter relative links in Domino Web Applications it may be considered a bit awkward. upon being clicked the target resource would typically be referenced directly and for most complete URLs this is the desired behavior.properties .0. Consider for example the case in which a friend sends you a mail with a link to http://www.hostname=my.anonymous=true To make any changes to CSEnvironment. As this modus operandi may not always be desirable.ssl=false CS_SERVER_DOMINO_DIRECTORY_1.ibm.which typically can be found under the following directory: <WEBSPHERE DIR>/PortalServer/shared/app/config.9 New URL re-writing This feature was introduced to improve the behavior of links to other documents.the "Domino Directory Server" service enabled.

a number of issues have been brought to our attention. All rights reserved. 2004. © Copyright IBM Corp. This section may assist you in identifying the source of any problems using the Domino Application Portlet.A Appendix A. Known issues Through feedback with customers and other developers. 55 .

This problem has been resolved in a hotfix and will be integrated into the next full release of DAP (Release 1.nsf/ae??ae??eiAa~’>>?OpenView A. then the email is lost as the portlet returns to the default view for the mail database. A fix for this issue is proposed for Release 1. HTTP requests are decoded if the request’s URI contains percentage-encoded hexidecimal.1 Anonymous access issue An issue occurs when the portlet authentication is turned off (anonymous portal user). for Linux® (only). This is a problem for some language versions of the Domino 6.getRequestURI() method.3 Refresh Currently performing a refresh of the browser window will result in the user being returned to the default page.com/reserve. the width and height of the portlet are set in the Edit page and are not updated by the maximize action. the Inbox.2 Maximize portlet issue In the current release of DAP.4 Language version issue In the WebSphere Application Server’s implementation of the HttpServletRequest. For example: http://dominoserver. but authentication fails.5 databases where the translated view name is used in the URL instead of the alias. The user is presented with the Domino login screen.com/reserve. For example. A.5 New window opening in Linux If problems are encountered with actions that result in new windows opening (for example opening a document).A.nsf/%E6%8C%89%E6%97%A5%E6%9C%9F %E9%A1%AF%E7%A4%BA%E9%A0%90%E7%B4%84?OpenView Becomes: http://dominoserver. This means that when the DAP portlet is maximized it remains at the defined size rather than taking up the full page. the rules redirecting the target frame to ifa need to be changed to _self.1 of DAP. you should change: Input expression: target="_top" Output model: target="ifa" To: Input expression: target="_top" Output model: target="_self" 56 IBM Lotus Domino Application Portlet: Configuration and Tips . A.1). A. but the database application still requires the user to authenticate. based on the settings defined in Edit. This means that if a user is writing an email when the refresh is initiated.

using the HTML parser.11 Table properties There is an issue with table properties (for example cell padding) in Domino Web Application Portlet. Note . Appendix A. with heavy traffic accessing Domino Application Portlet. which cannot be modified.8 Configuration performance (WPS 5.10 Load issue On WPS 4. Known issues 57 .A. which has improved performance times. To overcome this. with respect to soft characters like ( .x. In order to display the rules correctly. the input and output fields will be LTR while the comment fields will display RTL.1. A.6 Alignment in BIDI language configuration and edit modes When viewing configuration mode (wrench icon) in a BIDI language.2) There is a known performance issue with the Domino Application Portlet configuration in WebSphere Portal Server 4.2. A.0) The general portal server configuration (in Manage Portlets) is slow for Domino Application Portlet because of the relatively large quantity of configuration information. A. Figure A-1 Richtext Applet Showing Missing Icons A. This can result in the new property values not being used. This is because the icon path is specified in the applet itself. you must force fields containing these characters to display LTR. some users may receive a 500 error response code signalling a failed POST request to Domino. The HTML parser overwrites the values because the attributes have the same name. ) and &. it is recommended that you use the Domino Web Application Portlet configuration mode (wrench icon) instead.9 Configuration performance (WPS 4.This is not an issue with the Regular Expression Parser. Domino is generating HTML with duplicate attribute names.1.7 Richtext applet icons The icons to accept or reject a link do not display. where switching tabs and saving the configuration is noticeably slower than in Version 5. Note .If you want to change the concrete portlet name (for example if you copy the concrete portlet) then you must use the configuration in Manage Portlets. A.0.

0 of the Domino Application Portlet.1 of the Domino Application Portlet. Note that in release 1.12 Domino Web Access Domino Web Access (iNotes) is not supported with release 1. “Support for Domino Web Access (iNotes)” on page 52. See 6. 58 IBM Lotus Domino Application Portlet: Configuration and Tips . support has been provided for Domino Web Access through two application specific rulesets.A.4.

com/redbooks/redp3917 Alternatively.B Appendix B.com/redbooks Select the Additional materials and open the directory that corresponds with the Redpaper form number.nsf Sample1Rules. Point your Web browser to: ftp://www.xml Sample2Rules. Sample Ruleset Sample Ruleset © Copyright IBM Corp. you can go to the IBM Redbooks Web site at: ibm.xml Sample. All rights reserved. 2004.redbooks. Locating the Web material The Web material associated with this Redpaper is available in softcopy on the Internet from the IBM Redbooks Web server. 59 .ibm.xml Description Default Ruleset Sample Notes Database used for examples in this paper. Additional material This Redpaper refers to additional material that can be downloaded from the Internet as described below. Using the Web material The additional Web material that accompanies this Redpaper includes the following files: File name DefaultRules. REDP-3917-00.

60 IBM Lotus Domino Application Portlet: Configuration and Tips .

Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this Redpaper. as well as order hardcopy Redbooks or CD-ROMs. see “How to get IBM Redbooks” on page 61. Note that some of the documents referenced here may be available in softcopy only.Info Center for WebSphere Portal 5.html#ic5 WebSphere Portal and Lotus Workplace Catalog http://catalog.x http://www-106. draft publications and Additional materials.com/services © Copyright IBM Corp. 2004. at this Web site: ibm.com/support IBM Global Services ibm.01. SG24-6357 Portalizing Domino Applications: Integration with Portal 5. IBM Redbooks For information on ordering these publications.1 and Extended Products: Integration Guide.com/wps/portal/portalworkplace How to get IBM Redbooks You can search for.com/developerworks/websphere/zones/portal/proddoc. Redpapers.lotus. 61 .02 and Lotus Workplace 2.ibm. Hints and Tips. All rights reserved.com/redbooks Help from IBM IBM Support and downloads ibm. view. SG24-6466 Online resources These Web sites and URLs are also relevant as further information sources: WebSphere Portal Development Zone .5. or download Redbooks. Domino 6.

62 IBM Lotus Domino Application Portlet: Configuration and Tips .

.

For more information: ibm. Domino Application Portlet (DAP) provides the solution. Customers have invested heavily to exploit the power of Domino in developing proprietary applications. Experts from IBM. The main question asked by such customers is how do we move our Domino Applications into a portal. This IBM Redpaper describes the Domino Application Portlet (DAP) in detail and gives practical examples for configuring and customizing this portlet.com/redbooks REDP-3917-00 . Redpaper INTERNATIONAL TECHNICAL SUPPORT ORGANIZATION BUILDING TECHNICAL INFORMATION BASED ON PRACTICAL EXPERIENCE IBM Redbooks are developed by the IBM International Technical Support Organization. It facilitates the easy integration of Domino Web Applications into a portal server. Specific recommendations are provided to help you implement IT solutions more effectively in your environment. As a result they are understandably reluctant to start again and move towards the benefits of a portal environment. collaborative workplace. Customers and Partners from around the world create timely technical information based on realistic scenarios. It provides customers with integrated content and applications in addition to a unified.Back cover ® IBM Lotus Domino Application Portlet Configuration and Tips Configuration and authentication Parsers and rulesets Examples and sample code WebSphere Portal is a complete portal solution. Domino is a comprehensive application platform.