温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Tomcat使用JDBC Realm配置Basic认证

发布时间:2020-08-01 01:20:49 来源:网络 阅读:925 作者:genuinecx 栏目:开发技术

1. 下载MySQL JDBC驱动(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. 连接数据库,创建BAISC访问用户表和用户角色表,并插入数据。

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节点下增加如下内容

  <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,输入应用的访问地址,就会弹出用户登录的输入框,输入正确的用户名和密码后就可以访问受保护的资源。


需要注意的是:只有首次访问受保护的资源时才需要进行登录,这是因为用户登录后相关的信息都放到Tomcat服务器的缓存中,除非用户关闭浏览器或清除缓存,否则认证信息一直存在,用户也就不需要再次进行登录。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI