使用JPDA调试Tomcat(一)
在本文中,我将使用JPDA调试Tomcat中的BUG。在这篇文档中,我会用Step by Step的方式来进行描述。所以,你必须要从头按顺序读到尾,并照着动手做一遍才可以。
下载Tomcat 6.0.32
首先访问Tomcat的下载地址:http://tomcat.apache.org/download-60.cgi
点击Archive:
选择6.0.32:
分别在bin和src目录中下载程序包和源码包:
下载的ZIP如下:
然后我们要添加对用户的定义,编辑conf/tomcat-users.xml如下:
我们定义了"Admin"和"User"两种角色,以及"admin“及"user"两个用户,并赋予了这两个用户相关角色。
这样,准备工作就算完成了,我们重启Tomcat:
接下来,我们要将项目部署至Tomcat:
部署并访问实验项目
部署非常简单,将生成的WAR拷贝到Tomcat的webapps目录:
可以看到secured-webapp.war被Tomcat展开成了secured-webapp目录。接下来访问一下应用:
如果之间的步骤正确,则可以看到上面的页面。接下来我们来做实验:
实验
首先访问user页面:
http://127.0.0.1:8080/secured-webapp/user/
因为这个页面受到权限保护,因此会要求你输入账号密码,我们使用定义的user用户,账号名和密码均为user:
点击'Login',可以看到用户成功登入了user页面:
然后我们试着访问admin页面:http://127.0.0.1:8080/secured-webapp/admin/
结果如下:
可以看到,user用户没有权限访问这个页面, 一切和预期的一样。
接下来我们关掉浏览器,重新打开,清除了已登录状态,然后访问admin页面:http://127.0.0.1:8080/secured-webapp/admin/
这次我们改用admin登录:
可以看到,admin用户能够访问受限页面了:
那么,Tomcat在这一点上一切正常,有什么BUG呢?接下来我们试试看:
发现BUG
首先退出浏览器,重新打开,然后访问:http://127.0.0.1:8080/secured-webapp/admin/
点击"Login",结果如下:
很显然,我们没有权限用user用户访问admin页面。。。真的吗?试试看访问这个地址:http://127.0.0.1:8080/secured-webapp/admin/j_security_check
BOOM!我们进到了admin的页面空间。很显然,这是Tomcat 6.0.32版本中的BUG。本文的上篇就写到这里,在下篇当中,我们将用JPDA调试Tomcat6,并着手修复这个BUG。