首先準備好資料庫表或視圖:
CREATE TABLE users ( user_name
VARCHAR(15) NOT NULL PRIMARY KEY, user_pass
VARCHAR(15) NOT NULL); CREATE TABLE user_roles ( user_name
VARCHAR(15) NOT NULL, role_name
VARCHAR(15) NOT NULL, PRIMARY KEY (user_name, role_name));找到tomcat6目錄下的conf目錄,編輯其中的context.xml檔案,寫入如下內容
<Realm
className="org.apache.catalina.realm.JDBCRealm"
driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
connectionURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test" connectionName="sa"
connectionPassword="111111" userTable="users"
userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/>其中各項都不用太多介紹了,做開發的應該都能看得懂....然後找到項目中的web.xml檔案,新增內容 <security-constraint
id="test2"><web-resource-collection
id="test1"><web-resource-name>Protected
Area</web-resource-name><url-pattern>*.do</url-pattern><url-pattern>*.jsp</url-pattern><http-method>DELETE</http-method><http-method>GET</http-method><http-method>POST</http-method><http-method>PUT</http-method></web-resource-collection><auth-constraint
id="test3"><role-name>admin</role-name><role-name>user</role-name> <role-name>user</role-name></auth-constraint></security-constraint><login-config><auth-method>FORM</auth-method><realm-name>myrealm</realm-name><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/error.jsp</form-error-page></form-login-config>
</login-config><security-role><description>Administrator
role</description><role-name>admin</role-name><role-name>user</role-name> <role-name>user</role-name></security-role>其中兩個<role-name>中的內容為資料庫中的user_roles表中的role_name欄位,這個欄位可以放入多個,表示對多個角色放入登陸,這樣就算是配置完成了,其中我為了簡便,就對jsp進行了監控,其實可以配置對action的監控,這要看自己的配置了。這裡有個已經配置好的測試專案,我放在網盤中了,有興趣的可以下載看看:test.zip至於項目的退出功能,直接調用session.invalidate();就可以了!2013-01-10 --配置全使用者通過(不去判斷角色)剛剛經理說讓配置全部使用者通過驗證,不看角色,角色用另外一個系統來判斷,於是配置了一下,第一想法就是<role-name>*</role-name>
兩個地方都改成這樣子就好了結果就是可以了,