网上有很多关于此类文章,但是有很多文章将的含糊不清,让人看了很是郁闷,更有甚者竟然把没有测试的文章也帖出来,真不知道这些人怎么想的。。。哎~!
废话少说,让我们开始把~~!这些话上次已经说完了^_^
现在开始我们的Form-based Authentication吧,其实和BASIC基本上完全一样,就是拷贝~
要搭建整个流程需要四个阶段:
一、建立测试用数据库
我们这里用Mysql进行测试,其他数据库完全一样。
1、创建用户表
CREATE TABLE users (
id int(11) NOT NULL auto_increment,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (id)
)
2、创建权限表(此事例中用不到)
CREATE TABLE roles(
id int(11) NOT NULL auto_increment,
rolename varchar(20) NOT NULL,
PRIMARY KEY (id)
)
3、创建用户-权限对应表
CREATE TABLE user_roles (
id int(11) NOT NULL auto_increment,
username varchar(20) NOT NULL,
rolename varchar(20) NOT NULL,
PRIMARY KEY (id)
)
4、插入数据
insert into users(username,password) values('zhangdongyu', 'loveyuanyuan')
insert into roles(rolename) values('manager')
insert into user_roles(username,rolename) values('zhangdongyu', 'manager')
二、修改${tomcat}/conf/server.xml
找到
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
在上面这句话下面添加一下内容:
<Realm
className="org.apache.catalina.realm.JDBCRealm"
debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/weblogin" <!--数据库连接地址-->
connectionName="root" <!--数据库用户名-->
connectionPassword="123" <!--数据库密码-->
userTable="users" <!--用户表-->
userNameCol="username" <!--用户名列-->
userCredCol="password" <!--密码列-->
userRoleTable="user_roles" <!--用户权限对应表-->
roleNameCol="rolename" <!--权限列-->
/>
三、创建工程
在Eclipse创建一个web工程sercurityTest,在WebRoot下面创建一个文件夹admin(也可在里面建立几个文件),同时在根目录种创建login.jsp和error.jsp