Hi, I am wondering if I'm configuring my server.xml correctly. I have a DB called trailsDB with 2 tables in it called users and user_roles:
| user_name | user_pass | +-----------+-----------+ | buzz | 999999 | | cuco | 777777 | | tobi | 111111 | | jaclyn | 666666 | | tomcat | 1111 | +-----------+-----------+ +-----------+-----------+ | user_name | role_name | +-----------+-----------+ | buzz | admin | | cuco | admin | | jaclyn | guest | | tobi | guest | +-----------+-----------+ I am using the DataSourceRealm with a server.xml as follows: (I've removed a few non relevant things to make it easier to read) <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <!-- Global JNDI resources Documentation at /docs/jndi-resources-howto.html --> <GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- A "Connector" using the shared thread pool--> <Engine name="Catalina" defaultHost="localhost"> <!--For clustering, please take a look at documentation at: /docs/cluster-howto.html (simple how to) /docs/config/cluster.html (reference documentation) --> <!-- This Realm uses the UserDatabase configured in the global JNDI resources under the key "UserDatabase". Any edits that are performed against this UserDatabase are immediately available for use by the Realm. --> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> <!-- Define the default virtual host Note: XML Schema validation will not work with Xerces 2.2. --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="/blurbV1" docBase="blurbV1" reloadable="true"> <Resource name="jdbc/trailsDB" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/trailsDB?user=buzz&password=999999" maxActive="8"/> <!-- 9/5: Removed these 2 lines from the Realm declatation as per the docs ex.: driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/trailsDB" --> <Realm className="org.apache.catalina.realm.DataSourceRealm" dataSsourceName="jdbc/trailsDB" localDataSource="true" debug="99" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name" /> </Context> </Host> </Engine> </Service> </Server> I'm wondering if I need to be using the info defined in the resource element with the DataSourceRealm, or if that should be put somewhere else. I'm using form based login, and when i attempt to access a protected resource and try to login, it doesnt recognize my credentials (for ex., this happens when I enter user name 'buzz' and password '999999' at the login prompt on my Login.html. It sends me to auth-error.html instead when it should be granting me access. Here is my web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=" http://java.sun.com/xml/ns/javaee" xmlns:web=" http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>project-1c</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <listener> <listener-class> com.buzz.TrailsAppServletContextListener </listener-class> </listener> <servlet> <description>find trails based on category </description> <display-name>TrailFinderServlet</display-name> <servlet-name>TrailFinderServlet</servlet-name> <servlet-class>com.buzz.finder.TrailFinderServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TrailFinderServlet</servlet-name> <url-pattern>/TrailFinderServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>TrailReviewSubmitServlet</display-name> <servlet-name>TrailReviewSubmitServlet</servlet-name> <servlet-class>com.buzz.review.TrailReviewSubmitServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TrailReviewSubmitServlet</servlet-name> <url-pattern>/TrailReviewSubmitServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>TrailReviewServlet</display-name> <servlet-name>TrailReviewServlet</servlet-name> <servlet-class>com.buzz.review.TrailReviewServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TrailReviewServlet</servlet-name> <url-pattern>/TrailReviewServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>bikeFinderServlet</display-name> <servlet-name>bikeFinderServlet</servlet-name> <servlet-class>com.buzz.finder.bikeFinderServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>bikeFinderServlet</servlet-name> <url-pattern>/bikeFinderServlet</url-pattern> </servlet-mapping> <servlet> <description></description> <display-name>BikeFinderServlet</display-name> <servlet-name>BikeFinderServlet</servlet-name> <servlet-class>com.buzz.finder.BikeFinderServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>BikeFinderServlet</servlet-name> <url-pattern>/BikeFinderServlet</url-pattern> </servlet-mapping> <session-config> <session-timeout>10</session-timeout> </session-config> <security-role> <role-name>admin</role-name> <role-name>member</role-name> <role-name>guest</role-name> </security-role> <security-constraint> <web-resource-collection> <web-resource-name>UpdateTrails</web-resource-name> <url-pattern>/trailReviewNew.jsp</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <description>These are the roles who have access</description> <role-name>admin, member</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <realm-name>Tomcat Server Configuration Form-Based Authentication Area</realm-name> <form-login-config> <form-login-page>/Login.html</form-login-page> <form-error-page>/auth_error.html</form-error-page> </form-login-config> </login-config> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/trailsDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> Any ideas of what I coould be missing ? Thanks in advance, Adam