Tomcat使用JDBC Realm配置Basic认证

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服务器的缓存中,除非用户关闭浏览器或清除缓存,否则认证信息一直存在,用户也就不需要再次进行登录。

时间: 2024-10-06 08:46:25

Tomcat使用JDBC Realm配置Basic认证的相关文章

Tomcat配置Basic认证方案(一)

本文基于Tomcat文件文件中的角色和用户配置BASIC认证,是最简单的BASIC认证实现方案. 1. 在<tomcat_home>/conf目录下的tomcat-users.xml文件中添加如下内容 <role rolename="basicrole"/> <user username="basicuser" password="password" roles="basicrole"/>

Nginx 配置 Basic 认证

/* * 环境:LNMP(CentOS 6.6 + Nginx 1.8.0) */ 在 Nginx 下配置 Basic 认证需要依靠 Nginx 的 http_auth_basic_module 模块(官方文档:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) 配置过程: ① 生成认证文件,形式为 用户名:密码 密码采用 crypt 方式加密(用户名:user ,密码:123456) 文件保存在 /usr/local/n

tomcat 配置单向认证

tomcat配置单向认证 1.生成服务器端证书 keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650 2.由于是单向认证,没有必要生成客户端的证书,直接进入配置tomcat service

基于basic认证机制配置httpd服务器拥有用户访问控制功能

  实验须知:     实验主机:192.168.1.11   1. 配置httpd基于用户的访问控制----basic认证机制   (1)安装httpd程序,并启动服务 #yum install httpd–y [[email protected] ~]# servicehttpd start Starting httpd:httpd: Could not reliably determine the server's fully qualified domain name,using 172

Tomcat配置Basic Authentication

Tomcat配置Basic Authentication 创建Web App 首先准备一个Tomcat环境,这里使用的Tomcat7.x. 创建一个简单的web app用来测试,这里假定使用myapp. 添加依赖库 因为需要获取用户登录的用户名和密码,所以使用了apache的commons-codec库来解码,可以从apache的网站上下载commons-codec-1.10.jar包,并放到myapp/WEB-INF/lib目录下. 配置用户/密码/角色 修改Tomcat的conf目录下的to

Tomcat基本结构和配置文件结构

00x01 tomcat简介                                                                Tomcat: Servlet and JSP APIs,  JNDI and JMX APIs. Tomcat不是一个完整意义上的Jave EE服务器,它甚至都没有提供对哪怕是一个主要Java EE API的实现:但由于遵守apache开源协议,tomcat却又为众多的java应用程序服务器嵌入自己的产品中构建商业的java应用程序服务器,

Python的HTTP Basic认证

一.HTTP的Basic认证: 在HTTP协议的通信过程中,HTTP协议定义了基本认证过程以允许HTTP服务器对WEB浏览器进行用户的身份认证的方法,当一个客户端向HTTP服务器进行数据请求时,如果客户端未被认证,则HTTP服务器将通过基本的认证过程对客户端的用户名和密码进行验证,以决定用户是否合法. 客户端在接收到HTTP服务器的身份认证要求后,会提示用户输入用户名和密码,然后将用户名及密码用BASE64进行加密,加密后的密文将附加于请求信息中,如用户名为Paul,密码为:123456时,客户

Spring Security应用开发(04)HTTP basic认证

Spring Security默认是使用form-login表单认证方式. <!-- 默认使用表单认证 --> <sec:form-login /> Spring Security还提供了HTTP basic认证的配置的方式,只要在http标签中使用空的http-basic标签即可启用HTTP basic认证方式. <!-- 角色和URL模式的对应关系 --> <sec:http auto-config="true" use-expressio

Apache(httpd)配置--用户认证,域名跳转和访问日志配置

一.用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问.一些比较好总要的站点和网站后台都会加上用户认证,以保证安全.实例:下面对zlinux.com站点来做一个全站的用户认证: 步骤1:编辑虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //在linuxtest.com虚拟主机下编辑添加以下内容 <VirtualHost *:80> Documen