Hello,

I'm having a problem with a realm setup that used to work under a previous version of Tomcat (5.5.9), but isn't now that I'm using 5.5.23. For some reason it's not redirecting users to the login form upon first access of a protected URL setup in /WEB-INF/web.xml.

Instead they get the index.jsp page which they should see after logging in. The JSP has been processed, but an included header that loads an adminBean class does not show up, nor does a footer loading JspCalendar.class from /WEB-INF/classes/dates. Maybe it's correctly defending access to those classes when called from a jsp inside a security-constraint? The JspCalendar.class and a VisitorBean class are used in the public areas of the same site, no problem with them in that context.

Environment:
Tomcat 5.5.23
Fedora 4
latest apache 2.0 and mod_rewrite from fc rpms
rpm version of mysql as well
connectors 1.2.23

Note: I recently added +ForwardURIEscaped to /etc/httpd/conf.d/mod_jk- local.conf. Reading about this, I know that URL-based sessions won't work. But I don't think this is involved, and I disabled it with no effect on the realm issue, although my mod_rewrite rules failed as expected until I turned this option back on and restarted apache.

Any thoughts on how to troubleshoot this further?

Thank You,
Troy


From server.xml:

<Host name="myclient.com" debug="99" appBase="webapps/myclient.com">
        <Alias>www.myclientfdncom</Alias>
        <Context path="/" docBase="" debug="99" reloadable="true">
                <Realm className="org.apache.catalina.realm.JDBCRealm" 
debug="99"
                driverName="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost/myclient"
                connectionName="myclient"
                connectionPassword="mypass"
                userTable="myapp_users"
                userNameCol="user_name"
                userCredCol="user_pass"
                userRoleTable="myapp_user_roles"
                roleNameCol="role_name"/>
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        </Context>
</Host>


WEB-INF/web.xml:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee";
  xmlns:xsi="http://www.w3.com/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http:// java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

        <display-name>My Client</display-name>
        <description></description>
        <context-param>
                <param-name>javax.servlet.jsp.jstl.sql.dataSource</param-name>
<param-value>jdbc:mysql://localhost/myclient? autoReconnect=true,com.mysql.jdbc.Driver,myclient,mypass</param-value>
        </context-param>
        <security-constraint>
                <web-resource-collection>
                        <web-resource-name>myapp 
Administration</web-resource-name>
                        <url-pattern>/siteadmin/*</url-pattern>
                        <http-method>DELETE</http-method>
                        <http-method>GET</http-method>
                        <http-method>POST</http-method>
                        <http-method>PUT</http-method>
                </web-resource-collection>
                <auth-constraint>
                        <role-name>myapp Admin</role-name>
                </auth-constraint>
                <user-data-constraint>
                        <transport-guarantee>NONE</transport-guarantee>
                </user-data-constraint>
        </security-constraint>
        <login-config>
                <auth-method>FORM</auth-method>
                <realm-name>myapp Administration</realm-name>
                <form-login-config>
                        <form-login-page>/login.jsp</form-login-page>
                        <form-error-page>/login_fail.jsp</form-error-page>
                </form-login-config>
        </login-config>
        <security-role>
                <role-name>myapp Admin</role-name>
        </security-role>
        <filter>
                <filter-name>Set Character Encoding</filter-name>
                <filter-class>filters.SetCharacterEncodingFilter</filter-class>
                <init-param>
                        <param-name>encoding</param-name>
                        <param-value>UTF-8</param-value>
                </init-param>
        </filter>
        <filter-mapping>
                <filter-name>Set Character Encoding</filter-name>
                <servlet-name>action</servlet-name>
        </filter-mapping>
</web-app>

from httpd.conf:

<VirtualHost *:80>
        DocumentRoot /usr/local/tomcat/webapps/myclient.com/
        ServerName myclient.com
        ServerAlias *.myclient.com
        DirectoryIndex index.jsp index.html index.cgi index.php
        CustomLog logs/myclient.com_access_log combinedcomp
        ErrorLog logs/myclient.com_error_log
        SetEnv AWSTATS_FORCE_CONFIG myclient.com
        ScriptAlias /cgi-bin/ /usr/local/tomcat/webapps/myclient.com/cgi-bin/
        <Directory /usr/local/tomcat/webapps/myclient.com/cgi-bin>
                Options ExecCGI
        </Directory>
ScriptAlias /myapp/cgi-bin/ /usr/local/tomcat/webapps/myclient.com/ myapp/cgi-bin/
        <Directory /usr/local/tomcat/webapps/myclient.com/myapp/cgi-bin>
                Options ExecCGI
        </Directory>
        <Location "/WEB-INF/">
                deny from all
        </Location>
        RewriteEngine on
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}index.html" -f
        RewriteRule ^(.*)$ $1/index.html [L,R]
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}index.php" -f
        RewriteRule ^(.*)$ $1/index.php [L,R]
        RewriteCond "%{REQUEST_FILENAME}" !j_security_check
        RewriteCond "%{REQUEST_FILENAME}" !awstats
        RewriteCond "%{REQUEST_FILENAME}" !\.mvc
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}" !-f
        RewriteCond "%{DOCUMENT_ROOT}/%{REQUEST_FILENAME}" !-d
        RewriteRule ^(.*)$ /hru.jsp?hru=$1 [L,PT]
</VirtualHost>

/etc/httpd/conf.d/mod_jk-local.conf:

JkMount /*j_security_check ajp13
JkOptions +ForwardURIEscaped

/etc/httpd/conf.d/mod_jk.conf:

LoadModule      jk_module modules/mod_jk.so
JkWorkersFile   /etc/httpd/conf/workers.properties
JkLogFile       logs/mod_jk.log
JkLogLevel      error
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
Alias /examples "/usr/local/tomcat/webapps/examples"
<Directory "/usr/local/tomcat/webapps/examples">
    Options Indexes FollowSymLinks
</Directory>
JkMount /examples/servlet/* ajp13
JkMount /examples/*.jsp ajp13
<Location "/examples/WEB-INF/">
    deny from all
</Location>
Alias /tcadmin "/usr/local/tomcat/webapps/admin"
<Directory "/usr/local/tomcat/webapps/admin">
    Options Indexes FollowSymLinks
</Directory>
JkMount /admin/servlet/* ajp13
JkMount /admin/*.jsp ajp13
<Location "/admin/WEB-INF/">
    deny from all
</Location>
Alias /test "/usr/local/tomcat/webapps/test"
<Directory "/usr/local/tomcat/webapps/test">
    Options Indexes FollowSymLinks
</Directory>
JkMount /test/servlet/* ajp13
JkMount /test/*.jsp ajp13
<Location "/test/WEB-INF/">
    deny from all
</Location>
JkMount /jmx-console/* jboss
<Location "/jmx-console/">
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
</Location>

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to