Hello,
I am trying to add basic authentication for a servlet. This should be a
simple task and I'm quite sure I'm doing something stupid ... but I'm
failing to find the reason (note: I have it working on Tomcat 3.3).
I'm getting a 401 error.
I have the following directory structure :
<myroot>
|_ conf
|_ tomcat-users.xml
|_ web.xml
|_ server.xml
|_ webapps
|_ mywebapp.war
My server.xml is :
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<Connector
className="org.apache.catalina.connector.http.HttpConnector"
port="8080" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Realm className="org.apache.catalina.realm.MemoryRealm" />
<Host name="localhost" debug="0" appBase="full path to
<myroot>/webapps">
</Host>
</Engine>
</Service>
</Server>
My tomcat-users.xml is :
<tomcat-users>
<user name="testuser" password="testpwd" roles="test" />
</tomcat-users>
And my web.xml in mywebapp.war is :
[...]
<servlet>
<servlet-name>ServletRedirectorSecure</servlet-name>
<servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-c
lass>
</servlet>
<servlet-mapping>
<servlet-name>ServletRedirector</servlet-name>
<url-pattern>/ServletRedirector</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>SecurityRestriction</web-resource-name>
<description>Protect the Cactus redirector
servlet.</description>
<url-pattern>/ServletRedirectorSecure</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>Authorized Users Group</description>
<role-name>test</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<description>Test role</description>
<role-name>test</role-name>
</security-role>
I am starting Tomcat as follows in Ant (where ${out.tomcat40.full.dir}"
point to the absolute path to <myroot> and ${tomcat.home.40} to where
Tomcat 4 is installed) :
<java classname="org.apache.catalina.startup.Bootstrap"
fork="yes">
<jvmarg value="-Dcatalina.home=${tomcat.home.40}"/>
<arg value="-config"/>
<arg value="${out.tomcat40.full.dir}/conf/server.xml"/>
<arg value="start"/>
<classpath>
<!-- This is to allow the use of -Dbuild.sysclasspath=only
when
starting Ant - Meaning that all jars need to be on
the
initial classpath -->
<pathelement path="${java.class.path}"/>
<!-- These are ignore if -Dbuild.sysclasspath=only is used
-->
<fileset dir="${tomcat.home.40}">
<include name="bin/bootstrap.jar"/>
<include name="server/catalina.jar"/>
</fileset>
</classpath>
</java>
Any idea ?
Thanks
-Vincent
--
To unsubscribe: <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>