Adding JMCR-Stable version
[Benchmarks_CSolver.git] / JMCR-Stable / mcr-test / WWW / User / Tutorials / configuration.html
diff --git a/JMCR-Stable/mcr-test/WWW/User/Tutorials/configuration.html b/JMCR-Stable/mcr-test/WWW/User/Tutorials/configuration.html
new file mode 100644 (file)
index 0000000..9426ab8
--- /dev/null
@@ -0,0 +1,487 @@
+<HTML>\r
+<HEAD>\r
+  <!-- Created by GNNpress -->\r
+  <!-- Changed by: Anselm Baird-Smith,  4-Feb-1997 -->\r
+  <TITLE>Jigsaw configuration tutorial</TITLE>\r
+</HEAD>\r
+<BODY BGCOLOR="white">\r
+<P>\r
+<A HREF="http://www.w3.org/pub/WWW/" TARGET="_top_"><IMG SRC="/icons/WWW/w3c_home"\r
+    WIDTH="72" HEIGHT="48" ALT="W3C" BORDER="0"></A>\r
+<A HREF="http://www.w3.org/pub/WWW/Jigsaw/" TARGET="_top_"><IMG SRC="/icons/jigsaw" ALT="Jigsaw"\r
+    BORDER="0" WIDTH="212" HEIGHT="49"></A>\r
+<H1>\r
+  <B>Jigsaw</B> configuration tutorial\r
+</H1>\r
+<P>\r
+This tutorial will walk through the whole <B>Jigsaw</B> configuration process.\r
+It only assumes that you have unpacked the distribution, it will then take\r
+you through the following steps:\r
+<UL>\r
+  <LI>\r
+    <A HREF="#running">Running <B>Jigsaw</B>, along with some trouble shooting,</A>\r
+  <LI>\r
+    <A HREF="#global-configuration">Configuring the server, by editing its\r
+    properties,</A>\r
+  <LI>\r
+    <A HREF="#factory-configuration">Configuring the resource factory databases</A>\r
+  <LI>\r
+    <A HREF="#editing">Editing existing resources</A>\r
+  <LI>\r
+    <A HREF="#authentication">Setting up authentication</A>\r
+</UL>\r
+<P>\r
+It is recommended, however, that before reading this tutorial, you read the\r
+brief overview of <A HREF="../Introduction/architecture.html"><B>Jigsaw</B>\r
+architecture</A>.\r
+<P>\r
+Note also that a new configuration tool,\r
+<B><A HREF="../Administration/JigAdm.html">JigAdmin</A></B>, has been provided\r
+to make the configuration of <B>Jigsaw</B> easier, and more understandable.\r
+Of course, reading this tutorial is still very useful!\r
+<H2>\r
+  <A NAME="running">Running <B>Jigsaw</B></A>\r
+</H2>\r
+<P>\r
+<B>Jigsaw</B> distribution comes with a sample root directory. The very first\r
+thing to do, is to check that it runs properly in this directory, for this\r
+purpose, just run the following command (it should work on any platform that\r
+supports Java):\r
+<P>\r
+For version 1.0alpha5 and up:\r
+<P>\r
+j<CODE>ava w3c.jigsaw.Main -root <I>root</I> </CODE>\r
+<P>\r
+For version 1.0alpha4 and lower:\r
+<P>\r
+<CODE>java w3c.jigsaw.http.httpd -host <I>host</I> -port <I>port</I> -root\r
+<I>root</I></CODE>\r
+<P>\r
+You should substitute:\r
+<UL>\r
+  <LI>\r
+    <I>host</I> with the full IP host name of your machine,\r
+  <LI>\r
+    <I>port</I> with the port you want the server to listen to (defaults to 8001),\r
+  <LI>\r
+    <I>root</I> with the distribution sample root directory (e.g.\r
+    <CODE>.../Jigsaw/Jigsaw</CODE>)\r
+</UL>\r
+<P>\r
+If everything runs smoothly, then <B>Jigsaw</B> will print the following\r
+message:\r
+<PRE>loading properties from: /afs/w3.org/usr/abaird/Jigsaw/config/httpd.props\r
+Jigsaw[1.0alpha3]: serving at http://www24.w3.org:8888\r
+</PRE>\r
+<P>\r
+Meaning that the server is ready, and listening at the given URL. If things\r
+do not run as nicely, here is a list of possible hints:\r
+<UL>\r
+  <LI>\r
+    If the command line exits, saying that it can't find the class\r
+    <CODE>w3c.jigsaw.http.httpd</CODE>, this means that your CLASSPATH environment\r
+    variable is not set correctly. Be sure to include in this variable the\r
+    <CODE>.../Jigsaw/classes/jigsaw.zip</CODE> file (were the <CODE>...</CODE>\r
+    stands for the absolute path of the directory in which you have unpacked\r
+    the distribution).\r
+  <LI>\r
+    If the command line exits, saying that it was unable to restore the root\r
+    resource, then, check the value of the <CODE>-root</CODE> command line toggle.\r
+</UL>\r
+<P>\r
+We are now assuming that <B>Jigsaw</B> is running in its sample root directory.\r
+If you want to run <B>Jigsaw</B> in some other place then its sample root\r
+directory, you just need to copy it to the appropriate location (using a\r
+recursive copy program, so that you get the sub-directories too).\r
+<P>\r
+The sample root directory provides a set of resources (located in the\r
+<CODE>Admin</CODE> directory) that allows you to configure the server. As\r
+this directory doesn't come protected by default, you should continue to\r
+read this tutorial until you have protected it (you can jump directly to\r
+the <A HREF="#authentication">authentication section</A>, but it is recommended\r
+that you keep reading until reaching it).\r
+<H2>\r
+  <A NAME="global-configuration">Global configuration</A>\r
+</H2>\r
+<P>\r
+Tired of writing all these command line arguments when running <B>Jigsaw</B>\r
+? In this section, we will explain how to edit the server global configuration,\r
+which will allow you to save your default settings.\r
+<P>\r
+Point your favorite browser to <CODE>/Admin/Properties</CODE>. This page\r
+has a number of links that points &nbsp; <B>Jigsaw</B> module. At this stage,\r
+the first thing you want to do, is to save the actual settings: the command\r
+line flags all end up modifying the properties, so what you see is the correct\r
+set of properties (since you have provided the appropriate command line flags,\r
+e.g. <CODE>-host</CODE>, <CODE>-port</CODE>, etc.), but these are not consistent\r
+with the default property files. Save the properties by clicking the\r
+<I>Save</I> link. You can now play around, and change your settings as needed.\r
+<P>\r
+Note that some settings require a server restart (e.g. changing the server's\r
+port number). In such cases, you will be notified of the need of a server\r
+restart through an appropriate message. You <I>need not</I> (and shouldn't)\r
+save the properties before restarting the server (so that you can check them\r
+before actually saving them), however, once the server has restarted, and\r
+if you find these settings convenient, then you should save them by going\r
+back to the properties editor, and clicking the <I>Save</I> button.\r
+<P>\r
+Let's say, for example, that you want to turn the server in <I>trace</I>\r
+mode. You will first set the server's trace flag to <B>true</B>, then go\r
+to the <I>connections</I> property sheet, and turn the connection\r
+<I>trace</I> flag to <B>true</B> too. Don't save the properties yet, but\r
+restart the server. During its restart the server will first emit a message\r
+saying that it has shutdown itself, and then emit a second message saying\r
+that it has initialized itself. The server now runs in trace mode (i.e. it\r
+will display requests and replies). If you want this change to be persistent\r
+(i.e. always run the server in trace mode), then go back to the properties\r
+editor, and <I>Save</I> the properties.\r
+<P>\r
+In some cases, after you change some properties, the server won't be able\r
+to restart (because the new settings are inconsistent). In this case, just\r
+restart the server manually (through the command line): this will make it\r
+read its settings from the unchanged properties.\r
+<H2>\r
+  <A NAME="factory-configuration">Resources configuration</A>\r
+</H2>\r
+<P>\r
+At this point, <B>Jigsaw</B> should be running, and its global configuration\r
+should be up to date. You may want to check that everything is fine by visiting\r
+some of the documents under the <B>Jigsaw</B> space directory (the\r
+<CODE>WWW</CODE> directory by default). You can read the documentation, for\r
+example, starting from <CODE>/User/Overview.html</CODE>.\r
+<P>\r
+This section will explain how you can <A HREF="#factory-extensions">declare\r
+new file extensions</A> (the usual <CODE>AddType</CODE> directive of servers),\r
+and how you can create <A HREF="#factory-templates">directory templates</A>\r
+.\r
+<H3>\r
+  Describing files by extensions\r
+</H3>\r
+<P>\r
+To export any piece of information, <B>Jigsaw</B> wraps it into an\r
+<A HREF="../Reference/w3c.jigsaw.resources.HTTPResource.html">HTTPResource</A>\r
+object (see <A HREF="../Introduction/indexer.html"><B>Jigsaw</B> resource\r
+factory documentation</A> for more information on this). This resource factory\r
+maintains a database to keep track of how files should be wrapped into resources.\r
+This database, known as the <I>extensions</I> database describe, for each\r
+extension, an (optional) mapping to some resource class, along with a set\r
+of default attribute values for the newly created resource that will encapsulate\r
+the file.\r
+<P>\r
+Let's say we want all files having the <CODE>png</CODE> extension, to be\r
+exported by a\r
+<A HREF="../Reference/w3c.jigsaw.resources.FileResource.html">FileResource</A>\r
+instance (the FileResource class is the class that knows how to send back\r
+files as reply to requests). We also want to state that the\r
+<CODE>content-type</CODE> attribute value for these file resources should\r
+be <B>image/x-png</B>. We first point our favorite browser to\r
+<CODE>/Admin/Extensions</CODE>, this displays the sorted list of registered\r
+extensions. What we want to do is to add a new extension, so we click on\r
+the <I>Add extension</I> link. This brings up a new form, asking us for an\r
+extension name, and an (optional) class. We fill in the name of the extension\r
+(<CODE>png</CODE>, <I>without</I> the leading dot), and the extension class\r
+(<CODE>w3c.jigsaw.resources.FileResource</CODE>), and then press the\r
+<I>Create</I> button. This brings up yet another form, which allows us to\r
+enter default attribute values for resources that will be created through\r
+this extension. We want to specify the <CODE>content-type</CODE>, so we fill\r
+this field with <B>image/x-png</B>, and - just for fun - we may want the\r
+default icon for theses resources to be <B>image.gif</B>, so we fill in this\r
+field too. We then press the <I>OK</I> button, which brings us back to the\r
+list of extensions (in which the new <CODE>png</CODE> extension has been\r
+inserted).\r
+<P>\r
+If you have a <CODE>.png</CODE> file under <B>Jigsaw</B> space directory,\r
+you can now query it: the resource factory will know how to wrap into a\r
+FileResource, and will send it back to you properly.\r
+<P>\r
+In some cases, you may just want to state that for all files having a particular\r
+extensions, some specific attribute should default to some specific value.\r
+A typicall example of this is to state that files having the <CODE>.fr</CODE>\r
+extension have been written in french. To handle such a case, we just follow\r
+the above procedure: we follow the <I>Add extension</I> link, and fill in\r
+the name of the extension (<CODE>fr</CODE> here), however, this time, we\r
+will leave the class name empty. This means that by itself, the\r
+<CODE>fr</CODE> extension will not cause a file to be exported, but <I>if</I>\r
+a file having the <CODE>fr</CODE> extension is to be exported (because, for\r
+example, it has both the <CODE>fr</CODE> and <CODE>html</CODE> extensions),\r
+then we are willing to provide some default values for some of its generic\r
+attributes. We press the <I>Create</I> button to register the extension,\r
+this brings up a form containing the generic attributes (i.e. attribute tha\r
+apply to <I>all</I>\r
+<A HREF="../Reference/w3c.jigsaw.resources.HTTPResource.html">HTTPResource</A>\r
+instances). We just fill in the <CODE>content-language</CODE> field, stating\r
+that its value should be <B>fr</B>, then we press the <I>OK</I> button, which\r
+brings us back to the list of registered extensions (in which <CODE>fr</CODE>\r
+has been inserted).\r
+<P>\r
+You should now be able to register as many extensions as you want. You should\r
+also check that the default extensions meet your &nbsp;expectations, by carefully\r
+viewing them. You may also want to remove some of the default extensions,\r
+or the one we have created above. To delete an extension, go to the page\r
+displaying the list of registered extensions, mark the ones you want to\r
+unregister by clicking on the checkbox at their right, and press the\r
+<I>Delete</I> button.\r
+<P>\r
+At this point, you might be surprised that we haven't <I>save</I> any of\r
+our changes. <B>Jigsaw</B> uses a complex caching scheme, and it decides\r
+itself when it is best to save changes to disk. However, you should remember\r
+that because of this, the server should be killed <I>only</I> by getting\r
+the <CODE>/Admin/Exit</CODE> resource (which will shutdown the server properly,\r
+saving to disk what needs to be saved at this point). If you really want\r
+your changes to be saved right now, you can still click on the /Admin/Properties\r
+<I>checkpoint</I> link, which will ensure all cached data are written back\r
+to the disk (it's usually a good idea to do that after editing the\r
+configuration).\r
+<H3>\r
+  <A NAME="factory-templates">Directory templates</A>\r
+</H3>\r
+<P>\r
+The <A HREF="#factory-extensions">previous section</A> has explained how\r
+to map files to resources based on their extensions. This section now explains\r
+how to map directories to resources.\r
+<P>\r
+As for files, mapping directories to resources is done by the\r
+<A HREF="../Introduction/indexer.html">resource factory</A>, however the\r
+mapping is done per directories name, rather then per extensions. <I>Directory\r
+templates</I> are records that describe how directories of a given name should\r
+be mapped to resource instances. The first rule to be aware of, is that if\r
+no directory templates is available for a specific directory, the file-system\r
+directory will be exported through a simple\r
+<A HREF="../Reference/w3c.jigsaw.resources.DirectoryResource.html">DirectoryResource</A>\r
+instance.\r
+<P>\r
+Back to directory templates. Directory templates associate a directory name\r
+with a resource class along with a set of default attribute values for the\r
+directory. Directory templates may be of two kinds: they can be\r
+<I>generic</I> or <I>normal</I> (depending on the value of their\r
+<CODE>generic</CODE> attribute). Generic directory templates apply to all\r
+directories having, as part of their path, the directory template name, while\r
+normal directory templates apply only to directory whose last name is the\r
+template name. Generic directory templates allows you to use some specific\r
+directory resource to export a whole hierarchy of information.\r
+<P>\r
+To access the directory templates database, point your favorite browser to\r
+<CODE>/Admin/DirectoryTemplates</CODE>. This will list the currently defined\r
+directory templates. Let's add a new directory template, for all\r
+<CODE>CVS</CODE> directories, which we want to export through the\r
+<A HREF="../Reference/w3c.jigsaw.cvs.CvsDirectoryResource.html">CvsDirectoryResource</A>\r
+(this resource provides a form-based interface to CVS). To do this, we follow\r
+the <I>Add directory</I> link, which brings up a form that prompts us for\r
+a directory name and a directory class. We want this directory template to\r
+apply to all <CODE>CVS </CODE>directory, so the name is just\r
+<CODE>CVS</CODE>, and we want these directories to be exported through a\r
+<CODE>w3c.jigsaw.cvs.CvsDirectoryResource</CODE> instance. We fill in the\r
+fields, and press the <I>OK</I> button, this brings up a new form, with the\r
+templates attribute themselves. We don't want this directory template to\r
+be generic, so we leave these fields alone. The <I>template</I> link brings\r
+up a form to edit the default attribute values for the resource to be created.\r
+The fields in this form depends on the class you have given when you created\r
+the directory template. In the case of the\r
+<A HREF="../Reference/w3c.jigsaw.cvs.CvsDirectoryResource.html">CvsDirectoryResource</A>,\r
+none of these attributes need default values, so we just skip them. We are\r
+all set, now when the resource factory will be queried to wrap a directory\r
+whose name is <CODE>CVS</CODE>, instead of creating a directory resource,\r
+it will create a resource that will allow you to control the cvs status of\r
+the files in the directory, neat isn't it ?\r
+<P>\r
+Another typical usage of directory templates, is to use them to provide writable\r
+areas. The\r
+<A HREF="../Reference/w3c.jigsaw.resources.PutableDirectory.html">PutableDirectory</A>\r
+class extends the basic\r
+<A HREF="../Reference/w3c.jigsaw.resources.PutableDirectory.html">DirectoryResource</A>\r
+class with the ability to create new resources to handle the HTTP <I>PUT</I>\r
+method (a bunch of browsers now support this PUT method, you can try for\r
+example <A HREF="http://www.w3.org/pub/WWW/Amaya/">Amaya</A>, or\r
+<A HREF="http://www.tools.gnn.com/">GNN</A>). Let's define a directory template\r
+for some directory named <CODE>Writable</CODE> and all its children directories.\r
+As before, we click on the <I>Add directory</I> link, the name of our directory\r
+template is simply <CODE>Writable</CODE> and its associated class is\r
+<CODE>w3c.jigsaw.resources.PutableDirectory</CODE>. We press the <I>OK</I>\r
+button, and this time, we state that the template is generic, by setting\r
+the generic attribute to <B>true</B>. This time we want to edit the\r
+<I>template</I> so we follow the link. The first thing we may want to do\r
+is to provide a fancy default icon, so that putable directories can be\r
+distinguished from the others, lets' use <CODE>burst.gif</CODE>, then if\r
+using GNN, you might want to turn the <CODE>browsable</CODE> attribute to\r
+<B>true</B>. This will make the resource handles the GNN specific\r
+<I>BROWSE</I> method. We press the <I>OK</I> button, and we are done. Don't\r
+forget to read the authentication section, that will explain how to setup\r
+<A HREF="#authentication">authentication</A> for these kinds of directories.\r
+<P>\r
+At some point, you may want to delete directory templates. In this case,\r
+go to the <CODE>/Admin/DirectoryTemplates</CODE> location, and mark each\r
+of the templates you want to delete by clicking on the checkbox to the right\r
+of their names. Then press the <I>Delete</I> button, you are done.\r
+<H2>\r
+  <A NAME="editing">Editing</A>\r
+</H2>\r
+<P>\r
+At this point, you should be able to run <B>Jigsaw</B>, to configure its\r
+properties and to edit the resource factory configuration databases. In this\r
+section, we will concentrate on <B>Jigsaw</B>'s ability to edit existing\r
+resources.\r
+<P>\r
+In some circumstances, you may want to customize a single resource of your\r
+whole information space. This may be because you want it to have a specific\r
+icon, or because it's a special resource that needs some specific configuration,\r
+etc.\r
+<P>\r
+Just for fun, let's say that although the document\r
+<CODE>/User/Overview.html</CODE> has the <CODE>html</CODE> extension, we\r
+want its content type to be advertized as text. To do this, what is needed\r
+is to edit the <CODE>content-type </CODE>attribute of the appropriate resource\r
+in order to change it into <B>text/plain<I>.</I></B> <B>Jigsaw</B> comes\r
+with a generic resource editor (which is itself a resource), that allows\r
+you to edit any specific resource exported by the server. To edit a resource,\r
+we just append its path to the <CODE>/Admin/Editor</CODE> resource. So, to\r
+edit our <CODE>/User/Overview.html</CODE> resource, we just point our browser\r
+to <CODE>/Admin/Editor/User/Overview.html</CODE>. This brings up a form\r
+containing the specific attributes of the resource. The one we are interested\r
+in, here, is its <CODE>content-type</CODE> that we change to\r
+<B>text/plain</B>. We press the <I>OK</I> button, et voila ! Try loading\r
+<CODE>/User/Overview.html</CODE>: instead of displaying the HTML document\r
+itself, your browser should now display the HTML text making the document.\r
+Enough fun, let's turn the resource <CODE>content-type</CODE> to\r
+<B>text/html</B>, and check that the resource is back to normal...good !\r
+<P>\r
+All resources are editable in the same way, again for fun only, let's say\r
+we want to add the\r
+<A HREF="../Reference/w3c.jigsaw.status.ThreadStat.html">ThreadStat</A> resource\r
+(which display the threads running in the server) into the <CODE>/User</CODE>\r
+directory resource. To do this, we launch the generic editor on the\r
+<CODE>/User</CODE> directory, by pointing our browser to\r
+<CODE>/Admin/Editor/User</CODE> location. This brings up a form with one\r
+field per directory resource attribute. This time, what we want to do is\r
+to add a resource, so we go straight down the page, and follow the <I>Add\r
+resource</I> link. We are prompted for a resource name, and a resource class.\r
+The name of the resource is the name under which it will be retreived from\r
+its directory, let's use <CODE>threads</CODE>. The full class name of the\r
+ThreadStat resource is <CODE>w3c.jigsaw.status.ThhreadStat</CODE>. We fill\r
+in the two fields, and press the <I>Create</I> button. Then we follow the\r
+<I>Existing resources</I> link. This shows up a sorted list of all the resources\r
+contained by the <CODE>/User</CODE> directory resource, among which is the\r
+<CODE>threads</CODE> resource. Follow <I>threads </I>link, this pops up an\r
+editor to edit the ThreadStat resource attributes. You may want to change\r
+the refresh rate, by changing the value of the <CODE>refresh</CODE> attribute\r
+(which gives the refresh period in seconds). Press the <I>OK</I> button.\r
+Now point your browser to <CODE>/User/threads</CODE>, and you will see the\r
+threads that the server is running.\r
+<P>\r
+Now that we got all this fun, its time to do some clean-up, let's remove\r
+the <CODE>threads</CODE> resource from the <CODE>/User</CODE> directory resource.\r
+Point your browser to the <CODE>/Admin/Editor/User</CODE> location. Mark\r
+the <CODE>threads</CODE> resource by clicking on the checkbox right to its\r
+name, &nbsp;select the <CODE>Remove</CODE> command and press the <I>OK</I>\r
+button. By the way, the <CODE>Reindex</CODE> button here, will reindex the\r
+marked resources (this is usefull if you change your resource factory\r
+configuration), and the <CODE>Update</CODE> button will update any of the\r
+resource attributes that is computed.\r
+<H2>\r
+  <A NAME="authentication">Authentication</A><B></B>\r
+</H2>\r
+<P>\r
+At this point, you nearly knows everything about <B>Jigsaw</B>. This section\r
+will provide you wit ha basic explanation of filters, and how to use them\r
+to setup authentication.\r
+<P>\r
+Resource filters are attached to specific resources in order to filter accesses\r
+to them. These filters are called once at lookup time, and once at reply\r
+time. On the way in (lookup time), they allow you to manipulate the request\r
+before the target resource handles it, and on the way out, they allow you\r
+to manipulate the target's reply before it is emited back to the browser.\r
+<P>\r
+Although <B>Jigsaw</B> provides a <A HREF="../Reference/filters.html">number\r
+of filters</A>, we will focus here on the authentication filter, that\r
+authenticate requests before thy are handled by their appropriate target\r
+resources. The\r
+<A HREF="../Reference/w3c.jigsaw.auth.GenericAuthFilter.html">GenericAuthFilter</A>\r
+is currently the only available authentication filter.\r
+<P>\r
+To illustrate its usage, we will go through the steps required to protect\r
+the <CODE>/Admin</CODE> directory. The first thing you want to do, is to\r
+define an authentication <I>realm</I>. An authentication realm is a database\r
+that will contain the description of a set of users, along with their passwords\r
+and/or IP adresses. Let's first define an <CODE>admin</CODE> authentication\r
+realm, describing all the users allowed to access the <CODE>/Admin</CODE>\r
+resources.For this we point our favorite browser to\r
+<CODE>/Admin/Realms</CODE>. This display the set of authentication realms\r
+the server knows about (this will be empty at this time). Let's create our\r
+realm: we click on the <I>Add realm</I> link, which brings up a form prompting\r
+us for the realm name (the server wide identifier for the realm), and the\r
+realm <I>repository</I>. Let's fill in the realm name with\r
+<CODE>admin</CODE>. The realm repository is the name of the file that the\r
+server will use to store the users database for the realm, it's good practice\r
+to put these files under the <CODE>config/auth</CODE> directory of\r
+<B>Jigsaw</B>. So we fill in the repository field with\r
+<CODE>.../config/auth/admin.db</CODE> (were <CODE>...</CODE> is to be substituted\r
+by the absolute path of the root directory of the server). Once both fields\r
+are filled in, we press the <I>Create</I> button to create the realm. This\r
+brings up a form containing the list of users defined in the realm (which\r
+is, of course, initially empty). We follow the <I>AddUser</I> link, which\r
+prompts us for a user name. Let's say that <CODE>admin</CODE> is the user\r
+we want to describe. We fill in the name, and press the <I>Create</I> button,\r
+this again brings up new form, prompting us for a bunch of information about\r
+the <CODE>admin</CODE> user. The email address is currently unused (but it\r
+might be used in the future for email notification), you can iethre fill\r
+it of leave it empty. You can type in any comments in the comments field\r
+which is used only for informational purposes. The ipaddress field allows\r
+you to state from which machine the user is allowed to connect. This field\r
+is not mandatory: if left blank, only the password will be used for\r
+authentication (be warned that the password authentication scheme used by\r
+HTTP is very weak, for protecting such a critic space as the\r
+<CODE>Admin</CODE> space, you should always specify both a password and some\r
+IP addresses). If you decide to fill in the ipaddress field, you can enter\r
+multiple addresses for the same user (one per line). In my case, I fill it\r
+with my office IP address and my home IP address, so I enter the following\r
+two lines of text:\r
+<PRE>18.52.0.144\r
+18.23.1.195\r
+</PRE>\r
+<P>\r
+You can also use <I>*</I> in the ip address field, meaning that any user\r
+connecting from the given set of IP addresses is to be authentified as the\r
+<CODE>admin</CODE> user. We then enter some password, and any optional groups\r
+we want the user to belong to (groups are a way of tagging a set of users\r
+belonging to the same realm, we will see some sample usage of groups below).\r
+<P>\r
+Once all the fields are filled-in, we press the <I>OK</I> button: the\r
+<CODE>admin</CODE> user is now registered as part of the <CODE>admin</CODE>\r
+realm. You can define as much users as you want, by following these same\r
+instructions.\r
+<P>\r
+Once you are satisfied with your realm, it is time to actually protect the\r
+<CODE>/Admin</CODE> directory. For this purpose we launch the generic resource\r
+editor on the <CODE>/Admin</CODE> resource by pointing our browser to\r
+<CODE>/Admin/Editor/Admin</CODE> location. What we want to do is add the\r
+authentication filter as one of the filters for the <CODE>/Admin</CODE> resource:\r
+we click on the <I>Add filter</I> link, and enter the following filter class:\r
+<CODE>w3c.jigsaw.auth.GenericAuthFilter</CODE>. We press the <I>OK</I> button\r
+to register the filter, this add two new links to the editor: let's follow\r
+the <I>filter-0</I> link. This pops up a form-based editor to edit the filter's\r
+attributes. The first identifier field need not be filled in (you can change\r
+it to <I>auth</I> in order to have more relevants link names), you can just\r
+skip it. The method field allow you to describe what methods are to be protected.\r
+As the <CODE>/Admin</CODE> is such a critic resource, we want to protect\r
+it against any method, which is the default when the field is left blank\r
+(otherwise, we would specify one method per line). The realm name field must\r
+be filled in: it should give the identifier of the realm we want to use for\r
+authenticating the <CODE>/Admin</CODE> space. We use here the realm that\r
+we have created above: <CODE>admin</CODE>. The users field allows you to\r
+restrict access further to only a set of users in the realm, and the group\r
+field allows you to restrict access to a set of groups of the realm. In both\r
+cases you should enter one user name (or group name) per line. If left blank,\r
+all users within the realm will be allowed in (which is what we want since\r
+we have defined a specific realm to describe the users that are allowed to\r
+configure the server). We can now press on the <I>OK</I> button: the\r
+<CODE>/Admin</CODE> directory is now protected. To check this, just point\r
+your browser to <CODE>/Admin</CODE>, this should now prompt you for a user\r
+name, and a password.\r
+<P>\r
+You are now all set: <B>Jigsaw</B> is configured, enjoy !\r
+<P>\r
+  <HR>\r
+<P>\r
+<I><A HREF="mailto:jigsaw@w3.org">Jigsaw Team</A><BR>\r
+$Id: configuration.html,v 1.1 2010/06/15 12:28:36 smhuang Exp $</I>\r
+<P>\r
+</BODY></HTML>\r