1.简要介绍.
在我们安装完Tomcat后,如果不进行适当的配置,而仅仅采用默认的配置来管理应用程序的访问控制是非常危险的。默认配置时,所有人都可以通过Internet在你的Tomcat服务器上执行任何的管理程序,包括卸载应用程序,删除等,因此我们一定要自己进行角色和帐号的配置,来提高安全性,尤其是在正式部署的服务器上。
2.访问控制
为了使Tomcat的应用程序访问控制管理生效,我们必须配置用户名和密码,并且与角色管理结合起来。
首先,我们应该分配一个管理者的权限,要注意使用BASIC方式授权是有风险的。在BASIC授权模式下,无论是输入什么样的用户名和密码,只要它在数据库中被识别是有效的,就可以进行任何的管理者才能执行的功能。除了密码约束之外,执行管理功能的页面也可以通过添加RemoteAddrValue或者是RemoteHostValue来进行IP或者是访问者的主机约束,下面的代码片段展示的是只有服务器本机才能访问管理者页面:
<Context path="/manager" privileged="true" docBase="/usr/local/kinetic/tomcat6/server/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127/.0/.0/.1"/> </Context> 3.配置角色和用户名及密码 在%Tomcat_Home%/conf目录下面有两个配置文件是非常重要的,一个是server.xml这是用来配置整个Tomcat服务器的, 这里不作介绍了,另外一个就是tomcat-users.xml,tomcat-users.xml就是我们用来配置角色和账户密码的配置文件, 下面是一个示例:原文地址:http://blog.csdn.net/csuliky/article/details/4236207在上面的例子中<tomcat-users>是根元素,<role>元素是用来配置角色的,只有一个属性rolename表示角色的名字 <user>元素表示账户,有3个属性,username是指账户名, password是密码,而roles就是所属的角色,这里可以给 一个账户同时指定多个角色,不同的角色用","分开。
- <?xml version='1.0' encoding='utf-8'?>
- <tomcat-users>
- <role rolename="manager"/>
- <role rolename="tomcat"/>
- <role rolename="admin"/>
- <user username="both" password="tomcat" roles="tomcat,role1"/>
- <user username="tomcat" password="tomcat" roles="tomcat"/>
- <user username="admin" password="" roles="admin,manager"/>
- <user username="role1" password="tomcat" roles="role1"/>
- </tomcat-users>