如何在Tomcat中调试领域功能?

NSF*_*NSF 7 java tomcat

我已将server.xml主机部分中的领域设置设置为如下所示:

<Realm  className="org.apache.catalina.realm.JDBCRealm"  driverName="org.gjt.mm.mysql.Driver"  
         connectionURL="jdbc:mysql://localhost:3306/test" connectionName="test" connectionPassword="test"  
             userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" 
       roleNameCol="user_role" />
Run Code Online (Sandbox Code Playgroud)

也在web.xml中:

<security-role>
    <role-name>ADMIN</role-name>
</security-role>

<security-constraint>  
    <web-resource-collection>  
        <web-resource-name>critical</web-resource-name>  
        <url-pattern>/admin/*</url-pattern>  
        <http-method>GET</http-method>  
        <http-method>POST</http-method>  
    </web-resource-collection>  
    <auth-constraint>  
        <role-name>ADMIN</role-name>  
    </auth-constraint>  
</security-constraint>  

<login-config>  
    <auth-method>FORM</auth-method>  
    <form-login-config>  
        <form-login-page>/login.jsp</form-login-page>  
        <form-error-page>/error.jsp</form-error-page>  
    </form-login-config>  
</login-config> 
Run Code Online (Sandbox Code Playgroud)

我有数据库设置.但是当env熏制了login.jsp时,即使我输入了正确的密码,我也被重定向到了error.jsp

我想知道是否有办法在这个过程中发现什么是错的.我可以在Eclipse中执行此操作或任何其他可能解决问题的提示吗?

Ste*_*way 14

要从Realm身份验证步骤获取调试信息,请按照此过程操作.

定义Realm时,将debug ="9"添加到定义中.

您还需要将其添加到logging.properties文件中:

org.apache.catalina.realm.level = ALL
org.apache.catalina.realm.useParentHandlers = true
org.apache.catalina.authenticator.level = ALL
org.apache.catalina.authenticator.useParentHandlers = true
Run Code Online (Sandbox Code Playgroud)

您可能还需要添加此项,以防止缓冲日志.如果这样做,请记得在完成调试后将其删除.

1catalina.org.apache.juli.FileHandler.bufferSize = -1
Run Code Online (Sandbox Code Playgroud)

现在,领域的调试日志应该最终出现在catalina.out文件中.