Hello,

I'm seeing something wierd with 4.1.24.  If I access an unprotected 
resource after I am authenticated, I receive null from getUserPrincipal(). 
 I am using the Coyote Http 1.1 connector, although I've tried it with the 
old catalina Http 1.1 connector.

Here's the test case:
1) access the  unprotected servlet first you'll see "testing unprotected 
servlet.  user is null"    using either: 
http://localhost:8083/testing/unprotected   or 
http://localhost:8080/testing/unprotected
2) access the protected servlet, you'll be challenged with the basic auth 
dialog and then see:  "testing protected servlet.  user is 
GenericPrincipal[tomcat]"   using either: 
http://localhost:8083/testing/protected   or 
http://localhost:8080/testing/protected
3) access the unprotected servlet, I still see:  "testing unprotected 
servlet.  user is null"  access it the same as in #1

This should return the same as #2, but it doesn't.  Can someone explain 
why?? and How can I workaround this problem??   I've been searching on the 
web, but www.mail-archive appears to be down.

Brian



Using Tomcat 4.1.24 standalone with the memory realm.

Here's my abbreviated conf/tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="editor"/>
  <user username="tomcat" password="tomcat" roles="editor"/>
</tomcat-users>

The get methods of my two servlets  (protected and unprotected)

unprotected servlet's doGet:

       PrintWriter out = res.getWriter();
       out.println("testing unprotected servlet");
       out.print("user is ");
       Principal p = req.getUserPrincipal();
       out.print(p);

protected servlet's doGet:

       PrintWriter out = res.getWriter();
       out.println("testing protected servlet");
       out.print("user is ");
       Principal p = req.getUserPrincipal();
       out.print(p);
 
Here's my web.xml file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 
2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"; >
<web-app>
        <display-name>testing</display-name>
        <description>Test Unsecured Pages App</description>
        <servlet>
                <servlet-name>protected</servlet-name>
 <servlet-class>com.paraware.test.TestServlet</servlet-class>
        </servlet>
        <servlet>
                <servlet-name>unprotected</servlet-name>
 <servlet-class>com.paraware.test.TestServlet2</servlet-class>
        </servlet>
        <servlet-mapping>
                <servlet-name>protected</servlet-name>
                <url-pattern>/protected</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
                <servlet-name>unprotected</servlet-name>
                <url-pattern>/unprotected</url-pattern>
        </servlet-mapping>
        <security-constraint>
                <web-resource-collection>
                        <web-resource-name>Secure 
Servlets</web-resource-name>
                        <description>Files secured for 
testing</description>
                        <url-pattern>/protected</url-pattern>
                        <http-method>GET</http-method>
                        <http-method>POST</http-method>
                </web-resource-collection>
                <auth-constraint>
                        <description>Editors</description>
                        <role-name>editor</role-name>
                </auth-constraint>
        </security-constraint>
        <login-config>
                <auth-method>BASIC</auth-method>
        </login-config>
        <security-role>
                <description>Page Editors</description>
                <role-name>editor</role-name>
        </security-role>
</web-app>



And from the server.xml:

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8080" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="4" connectionTimeout="20000"
               useURIValidationHack="false" disableUploadTimeout="true" />


    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
               port="8009" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" connectionTimeout="0"
               useURIValidationHack="false"
 protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

    <Connector 
className="org.apache.catalina.connector.http.HttpConnector"
               port="8083" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" />




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to