Tomcat+JSP使用BASE认证

HTTP的BASE认证属于比较简单的认证方式,不需要自己做登录页面,借此机会试试

在项目中启用BASE认证

修改项目的web.xml文件,加入认证配置信息



    second

    
    
        
            Restricted Resource
            /*
            GET
        
        
            
            webuser
        
    
    
        webuser
    
    
        BASIC
                UserCheck
    
    
    
    
        index.jsp
    

附上部分配置项说明

  • web-resource-name : 认证命名
  • url-pattern : 资源匹配规则,/*表示所有资源都需要认证,/admin/*表示/admin下的资源需要认证
  • role-name : 配置角色名,角色名可以自己命名,与后面的配置相同就好
  • auth-method : 认证方式为BASIC认证
  • realm-name : 窗口提示内容文本

一、使用Tomcat内植账户配置进行认证

修改/conf/tomcat-users.xml文件

CATALINA_BASE表示Tomcat安装目录



    
    
    

配置角色名及角色对应的账号,启动服务就可以了,访问匹配的资源路径就会有认证提示

二、使用数据库做身份认证

1、创建数据库表

可参照tomcat官网文档是的提示创建表

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)
);

2、然后在配置文件/conf/server.xml中加入


如果现有系统中表名和字段名不同,参照着修改,需要确保这些数据项都存在

加入时需要注意位置,如果注释掉之前的内容,则只有数据库认证有效



如果是放在LockOutRealm内,则配置文件和数据库都有效


    
    

3、配置JNDI数据库资源

这里需要配置数据库访问的JNDI,在/conf/server.xml中加入数据库连接配置,放在GlobalNamingResources中

  

    
  

此例中使用的数据库为MariaDB,其它数据库参照着修改,需要把数据库驱动mariadb-java-client-2.7.2.jar放在/lib目录下

尝试在/conf/context.xml中配置JNDI数据源,会出现找不到资源的情况,未探究怎么回事。如果有知晓的小伙伴,请赐教

配置完成,可以使用数据库进行身份认证了

你可能感兴趣的:(Tomcat+JSP使用BASE认证)