在數(shù)據(jù)庫里新建兩個表
A、用戶表
create table users (user_name varchar(20) not null,
user_pass varchar(20) not null,
PRIMARY KEY (user_name)) ;
B、用戶與角色關聯(lián)表
create table user_roles (user_name varchar(20) not null,
role_name varchar(20) not null,
PRIMARY KEY (user_name)) ;
C、插入數(shù)據(jù)
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> //認證失敗后跳轉(zhuǎn)的頁面
</form-login-config>
</login-config>
登錄表單必須包含輸入用戶姓名和口令的字段,它們必須被分別命名為j_username和j_password,表單將這二個值發(fā)送給j_security_check邏輯名字。
下面是一個該表單如何在HTML網(wǎng)頁中實現(xiàn)的例子:
<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就會自動轉(zhuǎn)到login.jsp頁面實現(xiàn)認證。對于簡單的認證,小型系統(tǒng),采用Tomcat實現(xiàn)容器內(nèi)認證是方便的。
http://www.tkk7.com/ronghao 榮浩原創(chuàng),轉(zhuǎn)載請注明出處:)