在数据库里新建两个表
A、用户表
create table users (user_name varchar(20) not null,
user_pass varchar(20) not null,
PRIMARY KEY (user_name)) ;
B、用户与角色关联表
create table user_roles (user_name varchar(20) not null,
role_name varchar(20) not null,
PRIMARY KEY (user_name)) ;
C、插入数据
insert into users values('user1', 'password');
insert into user_roles values('user1', 'manager');
在tomcat的server.xml里加入描述
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/databaseName"
connectionName=yourname connectionPassword=yourpassword
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
在自己应用程序的web.xml里加入描述(基于表单)
<security-constraint>
<web-resource-collection>
<web-resource-name>My Test</web-resource-name>
<url-pattern>/get.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name> //能够访问的角色,可以多个
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>My Test</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/fail_login.html</form-error-page> //认证失败后跳转的页面
</form-login-config>
</login-config>
登录表单必须包含输入用户姓名和口令的字段,它们必须被分别命名为j_username和j_password,表单将这二个值发送给j_security_check逻辑名字。
下面是一个该表单如何在HTML网页中实现的例子:
<form method="POST" action="j_security_check">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit" value="确定"/>
</form>
这样当对get.jsp进行访问时,tomcat就会自动转到login.jsp页面实现认证。对于简单的认证,小型系统,采用Tomcat实现容器内认证是方便的。
http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted on 2005-12-28 14:00
ronghao 阅读(1408)
评论(3) 编辑 收藏 所属分类:
表现层相关