很久不曾写东西了,今天写完Tomcat的安全域感觉还有点用处,写此文章做个标记,也为后学者方便!
前提:创建数据库:tomcatuser , 创建两张表,脚本如下:
create table users(
user_name varchar(15) not null primary key,
user_pass varchar(15) not null
);


create table user_role(
user_name varchar(15) not null ,
role_name varchar(15) not null ,
primary key(user_name,role_name)
);
插入几条数据,等下做测试!
1.首先配置个数据源,6.1.4的和5.5.17 的一样,在conf/server.xml中加入:
<GlobalNamingResources>
<Resource
auth="Container"
name="mysql/tomcatusers"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
password=""
maxIdle="30"
maxWait="100"
username="root"
url="jdbc:mysql://localhost:3306/tomcatuser"
maxActive="20"/>


</GlobalNamingResources>

写在<GlobalNamingResource>中. 然后在conf/context.xml中加入:
<Context>
<ResourceLink name="mysql/tomcatusers" global="mysql/tomcatusers" type="javax.sql.DataSourcer"/>
</Context>
----------------------------------------------数据源配置完成!----------------------------------------
在你项目的web.xml为你的项目或项目中的模块设置访问权限:加入如下代码在<web-app></web-app>之间:
<security-constraint>
<web-resource-collection>
<web-resource-name>HTMLManger and Manager command</web-resource-name>
<url-pattern>/jmxproxy/*</url-pattern>
<url-pattern>/html/*</url-pattern>
<url-pattern>/list</url-pattern>
<url-pattern>/sessions</url-pattern>
<url-pattern>/start</url-pattern>
<url-pattern>/stop</url-pattern>
<url-pattern>/install</url-pattern>
<url-pattern>/remove</url-pattern>
<url-pattern>/deploy</url-pattern>
<url-pattern>/undeploy</url-pattern>
<url-pattern>/reload</url-pattern>
<url-pattern>/save</url-pattern>
<url-pattern>/serverinfo</url-pattern>
<url-pattern>/status/*</url-pattern>
<url-pattern>/roles</url-pattern>
<url-pattern>/resources</url-pattern>
<url-pattern>/regist.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<!-- NOTE: This role is not present in the default users file -->
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<!-- Define the Login Configuration for this Application -->
<login-config>
<auth-method>DIGEST</auth-method>
<realm-name>Tomcat Manager Application</realm-name>
</login-config>
代码简要说明:<url-pattern></url-pattern> 指明要控制的对象,<auth-constraint><role-name>什么角色,<login-config><auth-mothed> 弹出验证的方式,有BASIC , DIGEST 以及基于表单的验证.
代码详细说明见孙卫琴的Tomcat与Java web 开发详解.
启动Tomat ,运行你的项目,测试即可!Good luck!