Index: openacs-4/packages/gatekeeper/www/doc/gatekeeper-install.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/gatekeeper-install.html,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/gatekeeper/www/doc/gatekeeper-install.html	14 Jan 2004 16:48:00 -0000	1.1
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Installation</title><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.html" title="Gatekeeper"><link rel="up" href="index.html" title="Gatekeeper"><link rel="previous" href="index.html" title="Gatekeeper"><link rel="next" href="requirements.html" title="Requirements"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="requirements.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gatekeeper-install"></a>Installation</h2></div></div><div></div></div><div class="authorblurb"><p><p>
+      by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a>
+      </p><br>
+          OpenACS docs are written by the named authors, and may be edited
+          by OpenACS documentation staff.
+        </p></div><p>Gatekeeper redirects OpenACS site requests to a remote URL.  Each instance of gatekeeper works for a single URL.  To install:</p><div class="orderedlist"><ol type="1"><li><p>Go to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test</span></span><a href="/admin/applications" target="_top">/admin/applications</a></tt></p></li><li><p>Click "Add Application"</p></li><li><p>Choose "GateKeeper" and optionally fill out the other fields, and click OK.  If gatekeeper doesn't appear on the list, go to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test</span></span><a href="/acs-admin/install" target="_top">/acs-admin/install</a></tt> to install it and then resume this process</p></li><li><p>You should now see an "Applications" page with a list of applications including your new gatekeeper.  Click <tt class="computeroutput">Parameters</tt> for your new package.</p></li><li><p>Enter the remote URL as <tt class="computeroutput">GuardUrl</tt>.</p></li></ol></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="requirements.html">Next</a></td></tr><tr><td width="40%" align="left">Gatekeeper </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Requirements</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/gatekeeper-install.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/gatekeeper/www/doc/index.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/index.html,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/gatekeeper/www/doc/index.html	20 Apr 2001 20:51:11 -0000	1.1
+++ openacs-4/packages/gatekeeper/www/doc/index.html	14 Jan 2004 16:48:00 -0000	1.2
@@ -1,28 +1 @@
-<html>
-<head>
-<title>Gatekeeper Documentation</title>
-</head>
-
-<body bgcolor=#ffffff text=#000000>
-<h2>Gatekeeper Documentation</h2>
-
-<p>
-
-</p>
-
-<hr>
-
-<ul>
-
-<li><a href="requirements.html">Requirements</a>
-<p>
-
-</ul>
-
-<hr>
-
-<address><a href="mailto:jbank@arsdigita.com">jbank@arsdigita.com</a></address>
-<table align=right><tr><td>Last Modified: $Date$</td></tr></table>
-
-</body>
-</html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Gatekeeper</title><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.html" title="Gatekeeper"><link rel="next" href="gatekeeper-install.html" title="Installation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="gatekeeper-install.html">Next</a></td></tr></table><hr></div><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="gatekeeper"></a>Gatekeeper</h2></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="gatekeeper-install.html">Installation</a></span></dt><dt><span class="sect1"><a href="requirements.html">Requirements</a></span></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> <a accesskey="n" href="gatekeeper-install.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> Installation</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/index.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/gatekeeper/www/doc/requirements.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/requirements.html,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/gatekeeper/www/doc/requirements.html	20 Apr 2001 20:51:11 -0000	1.1
+++ openacs-4/packages/gatekeeper/www/doc/requirements.html	14 Jan 2004 16:48:00 -0000	1.2
@@ -1,163 +1,152 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-  <head>
-    <title>Gatekeeper Package Requirements</title>
-  </head>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.62.4"><link rel="home" href="index.html" title="Gatekeeper"><link rel="up" href="index.html" title="Gatekeeper"><link rel="previous" href="gatekeeper-install.html" title="Installation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="gatekeeper-install.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="requirements"></a>Requirements</h2></div></div><div></div></div><div class="authorblurb"><p><p>by <a href="mailto:jbank@arsdigita.com" target="_top">Joseph Bank</a>, 
+    <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a></p><br>
+          OpenACS docs are written by the named authors, and may be edited
+          by OpenACS documentation staff.
+        </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-requirements-introduction"></a>Introduction</h3></div></div><div></div></div><p> Gatekeeper allows an OpenACS installation to provide users
+    authenticated access to other web sites.  This is particularly
+    useful for dealing with "mounting" another legacy website on our
+    own site, while adding a security layer.  We can then only allow
+    access to the legacy website from the main ACS server.  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-overview"></a>System/Application Overview</h3></div></div><div></div></div><p>Gatekeeper provides an application for managing seamless
+    remote viewing of other web pages with optional security layers.
+    It consists of the following components:
+    </p><div class="itemizedlist"><ul type="disc"><li><p>A web interface for retrieving foreign urls.</p></li><li><p>An API for adding security restrictions.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-use-cases"></a>Use-cases and User Scenarios</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p> Jane Webmaster wants to build an ACS site that provides paid
+      access to a currently existing web site.  This other site uses
+      significantly different technology, so full integration would
+      require a great deal of effort.  </p><div class="orderedlist"><ol type="1"><li><p>Jane creates an instance of the gatekeeper package which points to the existing site.</p></li><li><p>She sets up a security restriction for the gatekeeper instance using
+            ACS permissions by only allowing read access for a newly created
+            user group.</p></li><li><p>She modifies the ACS Ecommerce system to insert and remove users from the new user group based on their subscription payments.</p></li><li><p>She modifies the existing site to only serve requests from her ACS server's IP address.</p></li></ol></div></li><li><pre class="programlisting">
+--------------------------------------------
+Use case
+--------------------------------------------
 
-  <body bgcolor="#ffffff">
-    <h1>Gatekeeper Package Requirements</h1>
-    by <a href="mailto:jbank@arsdigita.com">Joseph Bank</a>
-    <hr>
+Integration of an external web mail client: Squirrelmail (PHP-based) and
+IMAP-Server.
 
-    <i>This is a DRAFT</i>
+Administrator
+--------------------------------------------
+The institution has to have an IMAP server up and running. OpenACS must
+be installed using the external authentication via pam-imap/ldap/passwd
+(etc.) to authenticate and synchronize openacs users.
 
-    <h3>I. Introduction</h3>
+The administrator has to have a webmail client like IMP or Squirrelmail
+installed on Apache+PHP. The AOLServer has to have access to Apache for
+instance over localhost.
 
-    <p> The Gatekeeper module is intended to allow an ACS installation to act
-    as a simple gate keeper for another web site.  This is particularly useful
-    for dealing with "mounting" another legacy website on our own site, while
-    adding a security layer.  We can then only allow access to the legacy website
-    from the main ACS server.  
+The administrator has sucessfully installed the external authentication
+package using pam.
 
-    <h3>II. Vision Statement</h3>
+The administrator has to do the following to integrate the external
+webmail client squirrelmail using the gatekeeper.
 
-    <p>
-    </p>
+1. Create a new Gatekeeper Instance: Name: Squirrelmail
+2. Indicate the required parameters for the gatekeeper instance:
+- URL to guard:
+http://localhost/squirrel/
+- Gatekeeper Type:
 
-    <h3>III. System/Application Overview</h3>
-    
-    <p>
-    The ACS gatekeeper package provides an application for managing seamless
-    remote viewing of other web pages with optional security layers.
-    </p>
+requires external authentication
+- Path to an optional header/footer template
+/www/service0/packages/dotlrn/dotlrn-master.adp
+- Name of the authority used (local, pam, ldap...) or database table
+with account informations:
+pam
+- used login form input field:
+login_username
+- used password form input field:
+secretkey
+- logout/sign-out path:
+http:/localhost/squirrel/src/signout.php
+- request method:
+post
+- form action:
+http:/localhost/squirrel/redirect.php
+- where to add the startpage of the webmail in openacs:
+/dotlrn/?&amp;page-num=3
 
-    <p>
-    The package consists of the following components:
-    </p>
+The timeout of squirrelmail has to be set to a higher value than that of
+OpenACS to make sure that the webmail session is valid as long as the
+OpenACS session is valid.
 
-    <ul>
-    <li>A web interface for retrieving foreign urls.
-    <li>An API for adding security restrictions.
-    </ul>
 
-    <h3>IV. Use-cases and User Scenarios</h3>
+Gatekeeper
+--------------------------------------------
+The Gatekeeper Instance registers itself for auto logon on to that
+authority. Thus after a sucessful login the login information is also
+used to login to the webmail client and the cookies are forwarded to the
+users browser. Thus the authentication package has to be extended for
+post-login and logout procedure-calls. On request the gatekeeper checks
+the content type (html, xhtml, compressed or not, usage of frames or
+not) and rewrites the links apropriately. As soon as the user logs out
+the webmail client is also logged out.
 
-    <p> 
-    <ul>
-    <li> Jane Webmaster wants to build an ACS site that provides paid
-    access to a currently existing web site.  This other site uses
-    significantly different technology, so full integration would
-    require a great deal of effort.  Instead, Jane creates an instance
-    of the gatekeeper package which points to the existing site. She
-    sets up a security restriction for the gatekeeper instance using
-    ACS permissions by only allowing read access for a newly created
-    user group.  She then modifies the ACS Ecommerce system to insert
-    and remove users from the new user group based on their
-    subscription payments.  Finally, she modifies the existing site to
-    only serve requests from her ACS server's IP address.
-    </ul>
+User
+--------------------------------------------
+The user simply logs into the system once and is served a link where he
+can access the webmail-client. In this case over My Space--&gt;My Mails as
+Page three under dotLRN. The documentation of the webmail client has to
 
-    <h3>V. Related Links</h3>
+be made accessible to the user.
 
-    Lots of other web sites do related things.  For example, anonymizer sites allow
-    you to surf the web while doing seamless translation of the page.
-    <ul>
-      <li><a href="http://www.anonymizer.com">Anonymizer Site</a>
-    </ul>
+The current Gatekeeper has to be improved by the following:
+- allow usage of templates (done already)
+- allow xml, xhtml
+- allow compressed data
+- auto-check of frames --&gt; if frames are used then the template is
+useless or the frame has to be embedded inside another frameset.
+- cookies forwarding for external application (not sure if that already
+exists)
 
+Restrictions
+--------------------------------------------
+- Different locale between OpenACS and Webmail
+- Different designs (depending on the webmail client this can be changed
+via templates).
+- no true integration into MySpace possible to notify user that she/he
+has new unread emails.
+</pre></li><li><pre class="programlisting">
+--------------------------------------------
+Other Use-Case:
+--------------------------------------------
+Integration of PHPWiki (xhtml) via Gatekeeper and LDAP/PAM/SQL...
 
-    <h3>VI.A Requirements</h3>
-
-    <p><strong>10.0 Seamless Viewing</strong>
-    </p>
-    <p>
-    The gatekeeper should provide seamless viewing of url's.  This means
-    that the URL's should look like they belong to the ACS site, not the
-    original site.
-    </p>
-
-    <p><strong>20.0 Restricted Browsing</strong>
-    </p>
-    <p>
-    A given instance of the gatekeeper package should only provide access
+Username Inputfield: auth[userid]
+Password Inputfield: auth[passwd]
+Form action:    HomePage?action=browse
+For OpenACS-Authority: PAM
+PHPWiki can use many different types of authentication: LDAP, IMAP,
+PASSWD, DB,...
+        </pre></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-related-items"></a>Related Links</h3></div></div><div></div></div><p>Lots of other web sites do related things.  For example, anonymizer sites allow
+    you to surf the web while doing seamless translation of the page.</p><div class="itemizedlist"><ul type="disc"><li><p><a href="http://www.anonymizer.com" target="_top">Anonymizer Site</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-functional-requirements"></a>Functional Requirements</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th><span class="strong">Req #</span></th><th><span class="strong">Priority</span></th><th><span class="strong">Status in 5.0</span></th><th><span class="strong">Description</span></th></tr></thead><tbody><tr><td>10.0</td><td>A</td><td>?</td><td><span class="strong">Seamless
+              Viewing</span>. The gatekeeper should provide seamless viewing of URLs.  This means
+              that the URLs should look like they belong to the ACS site, not the
+              original site.</td></tr></tbody></table></div><p>Does this refer to web pages or to URL?  Ie, does this mean that "user can click on a link and see (password-protected) web pages from a remote site, within the OpenACS site's look and feel," or does it mean, "user can click URLs that look like http://myopenacssite.test/foo/bar"?</p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td>20.0</td><td>A</td><td>?</td><td><span class="strong">Restricted Browsing</span>. 
+A given instance of the gatekeeper package should only provide access
     to a single site.  The user must not be able to modify the URL so that
     arbitrary sites can be retrieved through the server.
-    </p>
-
-    <p><strong>30.0 Link Translation</strong>
-    </p>
-    <p>
-    All links from the gatekeeper page to the given site should be
+</td></tr></tbody></table></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td>30.0</td><td>A</td><td>?</td><td><span class="strong">Link Translation</span>. 
+ All links from the gatekeeper page to the given site should be
     translated to use the gatekeeper.
-    </p>
-
-    <p><strong>40.0 User Tracking</strong>
-    </p>
-    <p>
-    The ability to track all pages viewed via the gatekeeper should exist.
-    </p>
-
-    <p><strong>50.0 Flexible Restrictions</strong>
-    </p>
-    <blockquote>
-    <p><strong>50.1 ACS Permissions</strong>
-    </p>
-    <p>
+</td></tr></tbody></table></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><tbody><tr><td>40.0</td><td>A</td><td>?</td><td><span class="strong">User Tracking</span>. 
+The ability to track all pages viewed via the gatekeeper should exist.</td></tr></tbody></table></div><p><span class="strong">50.0 Flexible Restrictions</span>
+    </p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">50.1 ACS Permissions</span>
+    </p><p>
     The gatekeeper package should support standard ACS permissioning.  Access can thus
     be limited by setting up limited read access to an instance of the gatekeeper package.
-    </p>
-    <p><strong>50.2 Callbacks </strong>
-    </p>
-    <p>
+    </p><p><span class="strong">50.2 Callbacks </span>
+    </p><p>
     The gatekeepers should be provide access control via registered callbacks.
-    </p>
-    </blockquote>
-
-    <p><strong>60.0 Full HTTP Support</strong>
-    </p>
-    <p>
+    </p></blockquote></div><p><span class="strong">60.0 Full HTTP Support</span>
+    </p><p>
     The gatekeeper should support the entire HTTP specification.
-    <blockquote>
-        <p><strong>60.1 POST Support</strong>
-        </p>
-        <p>
+    </p><div class="blockquote"><blockquote class="blockquote"><p><span class="strong">60.1 POST Support</span>
+        </p><p>
         POST form submission must be supported.
-        </p>
-        <p><strong>60.2 Non-HTML Pages</strong>
-        </p>
-        <p>
+        </p><p><span class="strong">60.2 Non-HTML Pages</span>
+        </p><p>
         Retrieval of non-HTML pages, such as GIFs and JPEGs, must be supported.
-        </p>
-        <p><strong>60.3 Cookie Support</strong>
-        </p>
-        <p>
+        </p><p><span class="strong">60.3 Cookie Support</span>
+        </p><p>
         The system should have the ability to store and respond with cookies sent
         from the guarded site.
-        </p>
-    </blockquote>
-    </p>
-
-
-    <h3>VII. Revision History</h3>
-    
-<table cellpadding=2 cellspacing=2 width=90% bgcolor=#efefef>
-<tr bgcolor=#e0e0e0>
-    <th width=10%>Document Revision #</th>
-    <th width=50%>Action Taken, Notes</th>
-    <th>When?</th>
-    <th>By Whom?</th>
-</tr>
-
-<tr>
-   <td>0.1</td>
-   <td>Creation</td>
-   <td>11/23/2000</td>
-   <td>Joseph Bank</td>
-</tr>
-</table>
-
-    <hr>
-    <address><a href="mailto:jbank@arsdigita.com"></a></address>
-Last modified: $Id$
-  </body>
-</html>
+        </p></blockquote></div><p>
+    </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="gatekeeper-revisions-history"></a>Revision History</h3></div></div><div></div></div><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col></colgroup><thead><tr><th><span class="strong">Document Revision #</span></th><th><span class="strong">Action Taken, Notes</span></th><th><span class="strong">When?</span></th><th><span class="strong">By Whom?</span></th></tr></thead><tbody><tr><td>1</td><td>Creation</td><td>23 Nov 2000</td><td>Joseph Bank</td></tr><tr><td>2</td><td>Revised to add Nima Mazloumi's use case.</td><td>13 Jan 2004</td><td>Joel Aufrecht</td></tr></tbody></table></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="gatekeeper-install.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left">Installation </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> </td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/requirements.html#comments">View comments on this page at openacs.org</a></center></body></html>
Index: openacs-4/packages/gatekeeper/www/doc/xml/Makefile
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/xml/Makefile,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/gatekeeper/www/doc/xml/Makefile	14 Jan 2004 16:48:00 -0000	1.1
@@ -0,0 +1,21 @@
+# A very simple Makefile to generate the HTML docs
+# @author Vinod Kurup (vinod@kurup.com)
+# @author Modified by Roberto Mello (rmello@fslc.usu.edu)
+# @author Joel Aufrecht 
+#
+# @creation-date 2002-08-10
+# @modified-date 2002-09-21
+# @modified-date 2003-10-08
+#
+# Simplified version of acs-core-docs makefile, intended for generating
+# documentation from standard location /www/doc/xml in 
+# OpenACS packages
+#
+
+# Paths
+XSLTPROC=/usr/bin/xsltproc
+HTMLDOC=/usr/bin/htmldoc
+
+all:
+
+	cd .. ; $(XSLTPROC) --nonet --novalid --xinclude ../../../acs-core-docs/www/xml/openacs.xsl xml/index.xml
\ No newline at end of file
Index: openacs-4/packages/gatekeeper/www/doc/xml/index.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/xml/index.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/gatekeeper/www/doc/xml/index.xml	14 Jan 2004 16:48:00 -0000	1.1
@@ -0,0 +1,15 @@
+<?xml version='1.0' ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ 
+<!-- Global variables are defined in variables.ent -->
+]>
+
+  <article id="gatekeeper">
+  <title>Gatekeeper</title>
+      <xi:include href="install.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+        <xi:fallback>Section Missing</xi:fallback>
+      </xi:include>
+      <xi:include href="requirements.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+        <xi:fallback>Section Missing</xi:fallback>
+      </xi:include>
+  </article>
Index: openacs-4/packages/gatekeeper/www/doc/xml/install.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/xml/install.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/gatekeeper/www/doc/xml/install.xml	14 Jan 2004 16:48:00 -0000	1.1
@@ -0,0 +1,33 @@
+<?xml version='1.0' ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+
+  <sect1 id="gatekeeper-install">
+    <title>Installation</title>
+
+    <authorblurb>
+      <para>
+      by <ulink url="mailto:joel@aufrecht.org">Joel Aufrecht</ulink>
+      </para>
+    </authorblurb>
+    <para>Gatekeeper redirects OpenACS site requests to a remote URL.  Each instance of gatekeeper works for a single URL.  To install:</para>
+    <orderedlist>
+      <listitem>
+        <para>Go to <computeroutput>http://<replaceable>yourserver.test</replaceable><ulink url="/admin/applications">/admin/applications</ulink></computeroutput></para>
+      </listitem>
+      <listitem>
+        <para>Click "Add Application"</para>
+      </listitem>
+      <listitem>
+        <para>Choose "GateKeeper" and optionally fill out the other fields, and click OK.  If gatekeeper doesn't appear on the list, go to <computeroutput>http://<replaceable>yourserver.test</replaceable><ulink url="/acs-admin/install">/acs-admin/install</ulink></computeroutput> to install it and then resume this process</para>
+      </listitem>
+      <listitem>
+        <para>You should now see an "Applications" page with a list of applications including your new gatekeeper.  Click <computeroutput>Parameters</computeroutput> for your new package.</para>
+      </listitem>
+      <listitem>
+        <para>Enter the remote URL as <computeroutput>GuardUrl</computeroutput>.</para>
+      </listitem>
+    </orderedlist>
+
+</sect1>
Index: openacs-4/packages/gatekeeper/www/doc/xml/requirements.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/gatekeeper/www/doc/xml/requirements.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/gatekeeper/www/doc/xml/requirements.xml	14 Jan 2004 16:48:00 -0000	1.1
@@ -0,0 +1,325 @@
+<?xml version='1.0' ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+]>
+<sect1 id="requirements">
+  <title>Requirements</title>
+  <authorblurb>
+    <para>by <ulink url="mailto:jbank@arsdigita.com">Joseph Bank</ulink>, 
+    <ulink url="mailto:joel@aufrecht.org">Joel Aufrecht</ulink></para>
+  </authorblurb>
+
+  <sect2 id="gatekeeper-requirements-introduction">
+    <title>Introduction</title>
+    <para> Gatekeeper allows an OpenACS installation to provide users
+    authenticated access to other web sites.  This is particularly
+    useful for dealing with "mounting" another legacy website on our
+    own site, while adding a security layer.  We can then only allow
+    access to the legacy website from the main ACS server.  </para>
+  </sect2>
+
+  <sect2 id="gatekeeper-overview">
+    <title>System/Application Overview</title>
+    
+    <para>Gatekeeper provides an application for managing seamless
+    remote viewing of other web pages with optional security layers.
+    It consists of the following components:
+    </para>
+
+    <itemizedlist>
+      <listitem><para>A web interface for retrieving foreign urls.</para>
+      </listitem>
+      <listitem><para>An API for adding security restrictions.</para>
+      </listitem>
+    </itemizedlist>
+  </sect2>
+
+  <sect2 id="gatekeeper-use-cases">
+    <title>Use-cases and User Scenarios</title>
+
+    <itemizedlist>
+      <listitem><para> Jane Webmaster wants to build an ACS site that provides paid
+      access to a currently existing web site.  This other site uses
+      significantly different technology, so full integration would
+      require a great deal of effort.  </para>
+      <orderedlist>
+            <listitem><para>Jane creates an instance of the gatekeeper package which points to the existing site.</para>
+            </listitem>
+
+            <listitem><para>She sets up a security restriction for the gatekeeper instance using
+            ACS permissions by only allowing read access for a newly created
+            user group.</para>
+            </listitem>
+            <listitem><para>She modifies the ACS Ecommerce system to insert and remove users from the new user group based on their subscription payments.</para>
+            </listitem>
+            <listitem><para>She modifies the existing site to only serve requests from her ACS server's IP address.</para>
+            </listitem>
+        </orderedlist>
+      </listitem>
+      <listitem>
+        <programlisting>
+--------------------------------------------
+Use case
+--------------------------------------------
+
+Integration of an external web mail client: Squirrelmail (PHP-based) and
+IMAP-Server.
+
+Administrator
+--------------------------------------------
+The institution has to have an IMAP server up and running. OpenACS must
+be installed using the external authentication via pam-imap/ldap/passwd
+(etc.) to authenticate and synchronize openacs users.
+
+The administrator has to have a webmail client like IMP or Squirrelmail
+installed on Apache+PHP. The AOLServer has to have access to Apache for
+instance over localhost.
+
+The administrator has sucessfully installed the external authentication
+package using pam.
+
+The administrator has to do the following to integrate the external
+webmail client squirrelmail using the gatekeeper.
+
+1. Create a new Gatekeeper Instance: Name: Squirrelmail
+2. Indicate the required parameters for the gatekeeper instance:
+- URL to guard:
+http://localhost/squirrel/
+- Gatekeeper Type:
+
+requires external authentication
+- Path to an optional header/footer template
+/www/service0/packages/dotlrn/dotlrn-master.adp
+- Name of the authority used (local, pam, ldap...) or database table
+with account informations:
+pam
+- used login form input field:
+login_username
+- used password form input field:
+secretkey
+- logout/sign-out path:
+http:/localhost/squirrel/src/signout.php
+- request method:
+post
+- form action:
+http:/localhost/squirrel/redirect.php
+- where to add the startpage of the webmail in openacs:
+/dotlrn/?&amp;page-num=3
+
+The timeout of squirrelmail has to be set to a higher value than that of
+OpenACS to make sure that the webmail session is valid as long as the
+OpenACS session is valid.
+
+
+Gatekeeper
+--------------------------------------------
+The Gatekeeper Instance registers itself for auto logon on to that
+authority. Thus after a sucessful login the login information is also
+used to login to the webmail client and the cookies are forwarded to the
+users browser. Thus the authentication package has to be extended for
+post-login and logout procedure-calls. On request the gatekeeper checks
+the content type (html, xhtml, compressed or not, usage of frames or
+not) and rewrites the links apropriately. As soon as the user logs out
+the webmail client is also logged out.
+
+User
+--------------------------------------------
+The user simply logs into the system once and is served a link where he
+can access the webmail-client. In this case over My Space-->My Mails as
+Page three under dotLRN. The documentation of the webmail client has to
+
+be made accessible to the user.
+
+The current Gatekeeper has to be improved by the following:
+- allow usage of templates (done already)
+- allow xml, xhtml
+- allow compressed data
+- auto-check of frames --> if frames are used then the template is
+useless or the frame has to be embedded inside another frameset.
+- cookies forwarding for external application (not sure if that already
+exists)
+
+Restrictions
+--------------------------------------------
+- Different locale between OpenACS and Webmail
+- Different designs (depending on the webmail client this can be changed
+via templates).
+- no true integration into MySpace possible to notify user that she/he
+has new unread emails.
+</programlisting>
+      </listitem>
+      <listitem>
+        <programlisting>
+--------------------------------------------
+Other Use-Case:
+--------------------------------------------
+Integration of PHPWiki (xhtml) via Gatekeeper and LDAP/PAM/SQL...
+
+Username Inputfield: auth[userid]
+Password Inputfield: auth[passwd]
+Form action:    HomePage?action=browse
+For OpenACS-Authority: PAM
+PHPWiki can use many different types of authentication: LDAP, IMAP,
+PASSWD, DB,...
+        </programlisting>
+      </listitem>
+    </itemizedlist>
+  </sect2>
+  <sect2 id="gatekeeper-related-items">
+    <title>Related Links</title>
+
+    <para>Lots of other web sites do related things.  For example, anonymizer sites allow
+    you to surf the web while doing seamless translation of the page.</para>
+    <itemizedlist>
+      <listitem><para><ulink url="http://www.anonymizer.com">Anonymizer Site</ulink></para>
+      </listitem>
+    </itemizedlist>
+  </sect2>
+  <sect2 id="gatekeeper-functional-requirements">
+      <title>Functional Requirements</title>
+
+      <informaltable>
+        <tgroup cols="4">
+          <thead>
+            <row>
+              <entry><emphasis role="strong">Req #</emphasis></entry>
+              <entry><emphasis role="strong">Priority</emphasis></entry>
+              <entry><emphasis role="strong">Status in 5.0</emphasis></entry>
+              <entry><emphasis role="strong">Description</emphasis></entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>10.0</entry>
+              <entry>A</entry>
+              <entry>?</entry>
+              <entry><emphasis role="strong">Seamless
+              Viewing</emphasis>. The gatekeeper should provide seamless viewing of URLs.  This means
+              that the URLs should look like they belong to the ACS site, not the
+              original site.</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+      <para>Does this refer to web pages or to URL?  Ie, does this mean that "user can click on a link and see (password-protected) web pages from a remote site, within the OpenACS site's look and feel," or does it mean, "user can click URLs that look like http://myopenacssite.test/foo/bar"?</para>
+      <informaltable>
+        <tgroup cols="4">
+          <tbody>
+            <row>
+              <entry>20.0</entry>
+              <entry>A</entry>
+              <entry>?</entry>
+              <entry><emphasis role="strong">Restricted Browsing</emphasis>. 
+A given instance of the gatekeeper package should only provide access
+    to a single site.  The user must not be able to modify the URL so that
+    arbitrary sites can be retrieved through the server.
+</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+
+
+      <informaltable>
+        <tgroup cols="4">
+          <tbody>
+            <row>
+              <entry>30.0</entry>
+              <entry>A</entry>
+              <entry>?</entry>
+              <entry><emphasis role="strong">Link Translation</emphasis>. 
+ All links from the gatekeeper page to the given site should be
+    translated to use the gatekeeper.
+</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+
+      <informaltable>
+        <tgroup cols="4">
+          <tbody>
+            <row>
+              <entry>40.0</entry>
+              <entry>A</entry>
+              <entry>?</entry>
+              <entry><emphasis role="strong">User Tracking</emphasis>. 
+The ability to track all pages viewed via the gatekeeper should exist.</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+
+    <para><emphasis role="strong">50.0 Flexible Restrictions</emphasis>
+    </para>
+    <blockquote>
+    <para><emphasis role="strong">50.1 ACS Permissions</emphasis>
+    </para>
+    <para>
+    The gatekeeper package should support standard ACS permissioning.  Access can thus
+    be limited by setting up limited read access to an instance of the gatekeeper package.
+    </para>
+    <para><emphasis role="strong">50.2 Callbacks </emphasis>
+    </para>
+    <para>
+    The gatekeepers should be provide access control via registered callbacks.
+    </para>
+    </blockquote>
+
+    <para><emphasis role="strong">60.0 Full HTTP Support</emphasis>
+    </para>
+    <para>
+    The gatekeeper should support the entire HTTP specification.
+    <blockquote>
+        <para><emphasis role="strong">60.1 POST Support</emphasis>
+        </para>
+        <para>
+        POST form submission must be supported.
+        </para>
+        <para><emphasis role="strong">60.2 Non-HTML Pages</emphasis>
+        </para>
+        <para>
+        Retrieval of non-HTML pages, such as GIFs and JPEGs, must be supported.
+        </para>
+        <para><emphasis role="strong">60.3 Cookie Support</emphasis>
+        </para>
+        <para>
+        The system should have the ability to store and respond with cookies sent
+        from the guarded site.
+        </para>
+    </blockquote>
+    </para>
+
+
+    </sect2>
+    <sect2 id="gatekeeper-revisions-history">
+      <title>Revision History</title>
+      <informaltable>
+        <tgroup cols="4">
+          <thead>
+            <row>
+              <entry><emphasis role="strong">Document Revision #</emphasis></entry>
+              <entry><emphasis role="strong">Action Taken, Notes</emphasis></entry>
+              <entry><emphasis role="strong">When?</emphasis></entry>
+              <entry><emphasis role="strong">By Whom?</emphasis></entry>
+            </row>
+          </thead>
+          <tbody>
+            <row>
+              <entry>1</entry>
+              <entry>Creation</entry>
+              <entry>23 Nov 2000</entry>
+              <entry>Joseph Bank</entry>
+            </row>
+            
+            <row>
+              <entry>2</entry>
+              <entry>Revised to add Nima Mazloumi's use case.</entry>
+              <entry>13 Jan 2004</entry>
+              <entry>Joel Aufrecht</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </informaltable>
+    </sect2>
+  </sect1>
\ No newline at end of file