溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Tomcat使用JDBC Realm配置Basic認(rèn)證

發(fā)布時間:2020-08-01 01:20:49 來源:網(wǎng)絡(luò) 閱讀:919 作者:genuinecx 欄目:開發(fā)技術(shù)

1. 下載MySQL JDBC驅(qū)動(mysql-connector-java-x.x.x-bin.jar)放到TOMCAT_HOME/lib目錄下。


2. 配置TOMCAT_HOME/server.xml,添加JDBCRealm,注釋掉原來的LockOutRealm。

<Realm className="org.apache.catalina.realm.JDBCRealm"
      driverName="org.gjt.mm.mysql.Driver"
   connectionURL="jdbc:mysql://127.0.0.1:3306/authority?user=root&amp;password=123456"
       userTable="users" userNameCol="user_name" userCredCol="user_pass"
   userRoleTable="roles" roleNameCol="role_name"/>
<!-- <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>-->


3. 連接數(shù)據(jù)庫,創(chuàng)建BAISC訪問用戶表和用戶角色表,并插入數(shù)據(jù)。

CREATE TABLE `users` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_name` varchar(50) NOT NULL,
  `user_pass` varchar(50) NOT NULL,
  `user_mark` varchar(255) DEFAULT '',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `roles` (
  `role_id` int(11) NOT NULL AUTO_INCREMENT,
  `role_name` varchar(50) NOT NULL,
  `user_name` varchar(50) NOT NULL,
  PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO 'authority'.'users'('user_id','user_name','user_pass','user_mark') VALUES (1, 'admin', 'password', '');
INSERT INTO 'authority'.'users'('user_id','user_name','user_pass','user_mark') VALUES (2, 'guest', 'password', '');
INSERT INTO 'authority'.'roles'('role_id','role_name','user_name') VALUES (1,'admin','admin');
INSERT INTO 'authority'.'roles'('role_id','role_name','user_name') VALUES (2,'guest','guest');


4. 在WEB Project的WEB-INF/web.xml的web-app節(jié)點(diǎn)下增加如下內(nèi)容

  <security-constraint>
        <web-resource-collection>
            <web-resource-name>Web Project Name</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>favourite basic realm</realm-name>
    </login-config>
    <security-role>
        <role-name>admin</role-name>
    </security-role>


5. 啟動Tomcat,輸入應(yīng)用的訪問地址,就會彈出用戶登錄的輸入框,輸入正確的用戶名和密碼后就可以訪問受保護(hù)的資源。


需要注意的是:只有首次訪問受保護(hù)的資源時才需要進(jìn)行登錄,這是因?yàn)橛脩舻卿浐笙嚓P(guān)的信息都放到Tomcat服務(wù)器的緩存中,除非用戶關(guān)閉瀏覽器或清除緩存,否則認(rèn)證信息一直存在,用戶也就不需要再次進(jìn)行登錄。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI