Hi. I don�t know if you have understood me very well. What i wan�t is to set up users in tomcat for the slide client. I've done what you said me but i stell connect to tomcat and the client autmatically logs in, with the default conf. . What i'm doing wrong? I atach the files so you can help me.
 
C:\Program Files\Apache Group\jakarta-tomcat-4.0-b1\webapps\slide\WEB-INF\web.xml
C:\Program Files\Apache Group\jakarta-tomcat-4.0-b1\webapps\slide\domain.xml
C:\Program Files\Apache Group\jakarta-tomcat-4.0-b1\conf\tomcat-users.xml
 
---- Original Message -----
Sent: Monday, April 02, 2001 12:38 PM
Subject: RE: Authentication!

I've just been through this :) Authentication happens in the container (eg in Tomcat) and it has to have the right role. So... first you uncomment the security-constraint section in web.xml (remove the  !-- and the   -- at the end of the file), then you go to your tomcat config directory and edit tomcat-users.xml. There, add two extra lines:
 

  <user name="guest"   password="myguespasswordt"    roles="tomcat,guest" />
  <user name="root"    password="myrootpassword"     roles="tomcat,root" />
 
and you should get prompted for a login after restarting tomcat. You should be able to authenticate with the accounts above. For other servlet containers, you'll need to do the equivalent.
 
Peter
-----Original Message-----
From: Miguel Carvalho [mailto:[EMAIL PROTECTED]]
Sent: Monday, 2 April 2001 9:04 PM
To: [EMAIL PROTECTED]
Subject: Authentication!

Hi, i have a doubt about slide configuration files. I read that you need to make changes to web.xml and
domain.xml to get slide to give authentication. But when i read this files, i just make a change: uncoment
the comented part on web.xml. I only make this change because i'm not sure of what changes do i have to
make in domain.html to get authentication on (it is still working like default conf, letting me read but no write,
without asking for password), and how do i define users/permissions. ????
Other question is how are users authenticated? can you add new users in runtime?
 
Thanks,  maik
 
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">

<web-app>

  <servlet>
    <servlet-name>webdav</servlet-name>
    <servlet-class>org.apache.slide.webdav.WebdavServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>manager</servlet-name>
    <servlet-class>org.apache.slide.manager.ManagerServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>0</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- The mapping for the Slide WebDAV servlet -->
  <servlet-mapping>
    <servlet-name>webdav</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- The mapping for the Slide Manager servlet -->
  <servlet-mapping>
    <servlet-name>manager</servlet-name>
    <url-pattern>/manager/*</url-pattern>
  </servlet-mapping>

  <!-- Set the default session timeout (in seconds) -->
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>

  <!-- Establish the default MIME type mappings -->
  <mime-mapping>
    <extension>txt</extension>
    <mime-type>text/plain</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>html</extension>
    <mime-type>text/html</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>htm</extension>
    <mime-type>text/html</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>gif</extension>
    <mime-type>image/gif</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>jpg</extension>
    <mime-type>image/jpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>jpe</extension>
    <mime-type>image/jpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>jpeg</extension>
    <mime-type>image/jpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>java</extension>
    <mime-type>text/plain</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>body</extension>
    <mime-type>text/html</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>rtx</extension>
    <mime-type>text/richtext</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tsv</extension>
    <mime-type>text/tab-separated-values</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>etx</extension>
    <mime-type>text/x-setext</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ps</extension>
    <mime-type>application/x-postscript</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>class</extension>
    <mime-type>application/java</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>csh</extension>
    <mime-type>application/x-csh</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>sh</extension>
    <mime-type>application/x-sh</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tcl</extension>
    <mime-type>application/x-tcl</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tex</extension>
    <mime-type>application/x-tex</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>texinfo</extension>
    <mime-type>application/x-texinfo</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>texi</extension>
    <mime-type>application/x-texinfo</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>t</extension>
    <mime-type>application/x-troff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tr</extension>
    <mime-type>application/x-troff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>roff</extension>
    <mime-type>application/x-troff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>man</extension>
    <mime-type>application/x-troff-man</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>me</extension>
    <mime-type>application/x-troff-me</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ms</extension>
    <mime-type>application/x-wais-source</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>src</extension>
    <mime-type>application/x-wais-source</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>zip</extension>
    <mime-type>application/zip</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>bcpio</extension>
    <mime-type>application/x-bcpio</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>cpio</extension>
    <mime-type>application/x-cpio</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>gtar</extension>
    <mime-type>application/x-gtar</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>shar</extension>
    <mime-type>application/x-shar</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>sv4cpio</extension>
    <mime-type>application/x-sv4cpio</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>sv4crc</extension>
    <mime-type>application/x-sv4crc</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tar</extension>
    <mime-type>application/x-tar</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ustar</extension>
    <mime-type>application/x-ustar</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>dvi</extension>
    <mime-type>application/x-dvi</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>hdf</extension>
    <mime-type>application/x-hdf</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>latex</extension>
    <mime-type>application/x-latex</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>bin</extension>
    <mime-type>application/octet-stream</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>oda</extension>
    <mime-type>application/oda</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>pdf</extension>
    <mime-type>application/pdf</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ps</extension>
    <mime-type>application/postscript</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>eps</extension>
    <mime-type>application/postscript</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ai</extension>
    <mime-type>application/postscript</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>rtf</extension>
    <mime-type>application/rtf</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>nc</extension>
    <mime-type>application/x-netcdf</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>cdf</extension>
    <mime-type>application/x-netcdf</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>cer</extension>
    <mime-type>application/x-x509-ca-cert</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>exe</extension>
    <mime-type>application/octet-stream</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>gz</extension>
    <mime-type>application/x-gzip</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>Z</extension>
    <mime-type>application/x-compress</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>z</extension>
    <mime-type>application/x-compress</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>hqx</extension>
    <mime-type>application/mac-binhex40</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mif</extension>
    <mime-type>application/x-mif</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ief</extension>
    <mime-type>image/ief</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tiff</extension>
    <mime-type>image/tiff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>tif</extension>
    <mime-type>image/tiff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ras</extension>
    <mime-type>image/x-cmu-raster</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>pnm</extension>
    <mime-type>image/x-portable-anymap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>pbm</extension>
    <mime-type>image/x-portable-bitmap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>pgm</extension>
    <mime-type>image/x-portable-graymap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>ppm</extension>
    <mime-type>image/x-portable-pixmap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>rgb</extension>
    <mime-type>image/x-rgb</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>xbm</extension>
    <mime-type>image/x-xbitmap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>xpm</extension>
    <mime-type>image/x-xpixmap</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>xwd</extension>
    <mime-type>image/x-xwindowdump</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>au</extension>
    <mime-type>audio/basic</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>snd</extension>
    <mime-type>audio/basic</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>aif</extension>
    <mime-type>audio/x-aiff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>aiff</extension>
    <mime-type>audio/x-aiff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>aifc</extension>
    <mime-type>audio/x-aiff</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>wav</extension>
    <mime-type>audio/x-wav</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mpeg</extension>
    <mime-type>video/mpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mpg</extension>
    <mime-type>video/mpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mpe</extension>
    <mime-type>video/mpeg</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>qt</extension>
    <mime-type>video/quicktime</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mov</extension>
    <mime-type>video/quicktime</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>avi</extension>
    <mime-type>video/x-msvideo</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>movie</extension>
    <mime-type>video/x-sgi-movie</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>avx</extension>
    <mime-type>video/x-rad-screenplay</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>wrl</extension>
    <mime-type>x-world/x-vrml</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>mpv2</extension>
    <mime-type>video/mpeg2</mime-type>
  </mime-mapping>

  <!-- Establish the default list of welcome files -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
  </welcome-file-list>

  <!-- Authetication for the WebDAV servlet -->

  <!-- Uncomment this to get authentication -->

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>DAV resource</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>COPY</http-method>
      <http-method>DELETE</http-method>
      <http-method>GET</http-method>
      <http-method>HEAD</http-method>
      <http-method>LOCK</http-method>
      <http-method>MKCOL</http-method>
      <http-method>MOVE</http-method>
      <http-method>OPTIONS</http-method>
      <http-method>POST</http-method>
      <http-method>PROPFIND</http-method>
      <http-method>PROPPATCH</http-method>
      <http-method>PUT</http-method>
      <http-method>UNLOCK</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>root</role-name>
      <role-name>guest</role-name>
    </auth-constraint>
  </security-constraint>

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Manager</web-resource-name>
      <url-pattern>/manager/*</url-pattern>
      <http-method>GET</http-method>
      <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
      <role-name>root</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Slide DAV Server</realm-name>
  </login-config>

</web-app>
<?xml version="1.0"?>

<slide logger="org.apache.slide.util.logger.SimpleLogger" logger-level="6">
  
  <namespace name="webdav">
    
    <definition>
      
      <store name="memory">
        <!--nodestore classname="slidestore.reference.JDBCDescriptorsStore">
         <parameter name="driver">org.hsql.jdbcDriver</parameter>
         <parameter name="url">HypersonicSQL:slide</parameter>
         <parameter name="user">sa</parameter>
         <parameter name="password"></parameter>
        </nodestore>
        <securitystore>
          <reference store="nodestore" />
        </securitystore>
        <lockstore>
          <reference store="nodestore" />
        </lockstore>
        <revisiondescriptorsstore>
          <reference store="nodestore" />
        </revisiondescriptorsstore>
        <revisiondescriptorstore>
          <reference store="nodestore" />
        </revisiondescriptorstore-->
        <!--contentstore classname="slidestore.reference.JDBCContentStore">
         <parameter name="driver">org.hsql.jdbcDriver</parameter>
         <parameter name="url">HypersonicSQL:slidecontent</parameter>
         <parameter name="user">sa</parameter>
         <parameter name="password"></parameter>
        </contentstore-->
        <contentstore classname="slidestore.reference.FileContentStore">
          <parameter name="rootpath">files</parameter>
        </contentstore>
      </store>
      
      <scope match="/" store="memory" />
      
    </definition>
    
    <configuration>

      <!-- Actions mapping -->
      <default-action>/actions</default-action>
      <read-object>/actions/read</read-object>
      <create-object>/actions/write</create-object>
      <remove-object>/actions/write</remove-object>
      <grant-permission>/actions/manage</grant-permission>
      <revoke-permission>/actions/manage</revoke-permission>
      <read-permissions>/actions/manage</read-permissions>
      <lock-object>/actions/write</lock-object>
      <kill-lock>/actions/manage</kill-lock>
      <read-locks>/actions/read</read-locks>
      <read-revision-metadata>/actions/read</read-revision-metadata>
      <create-revision-metadata>/actions/write</create-revision-metadata>
      <modify-revision-metadata>/actions/write</modify-revision-metadata>
      <remove-revision-metadata>/actions/write</remove-revision-metadata>
      <read-revision-content>/actions/read</read-revision-content>
      <create-revision-content>/actions/write</create-revision-content>
      <modify-revision-content>/actions/write</modify-revision-content>
      <remove-revision-content>/actions/write</remove-revision-content>

      <!-- Paths configuration -->
      <userspath>/users</userspath>
      <guestpath>guest</guestpath>
      <filespath></filespath>
      <parameter name="dav">true</parameter>
      <parameter name="standalone">true</parameter>

      <!-- Roles definition -->
      <role name="admin">slideroles.basic.RootRole</role>
      <role name="user">slideroles.basic.UserRole</role>
      <role name="guest">slideroles.basic.GuestRole</role>

      <!-- Users management -->
      <!--auto-create-users>true</auto-create-users>-->
      <auto-create-users>false</auto-create-users>

      <!-- Default properties mapping -->
      <default-property name="foo" namespace="nsfoo/" value="bar"
       role="user"/>
      <default-property name="password" namespace="slide/" value=""
       role="user"/>

    </configuration>
    
    <data>
      
      <objectnode classname="org.apache.slide.structure.SubjectNode" uri="/">
        
        <permission action="/actions" subject="admin"/>
        <permission action="/actions/read" subject="user"
         inheritable="false"/>
        <permission action="/actions/read" subject="nobody"
         inheritable="false"/>
        
        <!-- /users represents the unauthenticated user -->
        
        <objectnode classname="org.apache.slide.structure.SubjectNode" 
         uri="/users">
          
          <permission action="/actions" subject="~"/>
          <permission action="/actions" subject="guest"
           inheritable="true" negative="true"/>
          <permission action="/actions/read" subject="user"
           inheritable="false"/>

          <!-- Permission group example -->
          
          <objectnode classname="org.apache.slide.structure.GroupNode" 
            uri="/users/groupA">
             <objectnode classname="org.apache.slide.structure.LinkNode" 
                uri="/users/groupA/john" linkedUri="/users/john" />
             <objectnode classname="org.apache.slide.structure.LinkNode" 
                uri="/users/groupA/root" linkedUri="/users/root" />
             <objectnode classname="org.apache.slide.structure.SubjectNode" 
               uri="/users/groupA/singleGroupMember"  />
          </objectnode>

          <!-- /users/root represents the administrator -->
          
          <objectnode classname="slideroles.basic.RootRoleImpl" 
           uri="/users/root">
            <revision>
              <property name="password">root</property>
            </revision>
          </objectnode>
          
          <!-- /users/john represents an authenticated user -->
          
          <objectnode classname="slideroles.basic.UserRoleImpl" 
           uri="/users/john">
            <revision>
              <property name="password">john</property>
            </revision>
          </objectnode>
          
          <!-- /users/guest represents an authenticated or unauthenticated 
               guest user -->
          
          <objectnode classname="slideroles.basic.GuestRoleImpl" 
           uri="/users/guest">
            <revision>
              <property name="password"></property>
            </revision>
          </objectnode>
          
        </objectnode>
        
        <objectnode classname="org.apache.slide.structure.ActionNode" 
         uri="/actions">
          
          <objectnode classname="org.apache.slide.structure.ActionNode" 
           uri="/actions/read"/>
          
          <objectnode classname="org.apache.slide.structure.ActionNode" 
           uri="/actions/write"/>
          
          <objectnode classname="org.apache.slide.structure.ActionNode" 
           uri="/actions/manage"/>
          
        </objectnode>
        
        <objectnode classname="org.apache.slide.structure.SubjectNode" 
         uri="/files">
          
          <permission action="/actions/manage" subject="/users/john"/>
          <permission action="/actions/write" subject="+/users/groupA"/>
          <permission action="/actions/read" subject="nobody"/>
          
        </objectnode>
        
      </objectnode>
      
    </data>
    
  </namespace>
  
</slide>
<!--
  NOTE:  By default, no user is included in the "manager" role required
  to operate the "/manager" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<tomcat-users>
  <user name="tomcat" password="tomcat" roles="tomcat" />
  <user name="role1"  password="tomcat" roles="role1"  />
  <user name="both"   password="tomcat" roles="tomcat,role1" />
  <user name="guest"  password="guest"  roles="tomcat,guest" />
  <user name="root"   password="root"   roles="tomcat,root" />
</tomcat-users>

Reply via email to