首先是数据库的创建
第二步在maven项目中导入jar包
pom.xml配置如下
4.0.0
com.hp.shiro
Shiro
0.0.1-SNAPSHOT
Shiro
Shiro
org.apache.shiro
shiro-core
1.4.0
org.slf4j
slf4j-log4j12
1.8.0-beta2
commons-logging
commons-logging
1.2
com.mchange
c3p0
0.9.5.2
mysql
mysql-connector-java
5.0.4
需要注意的是:由于我导入mysql-connector-java的jar包是8.0.11出现了不兼容,连接不上数据库,报了错让我找了好久
下面是创建连接数据库的配置,主要是用c3p0来进行连接
jdbc.ream.ini配置如下
[main]
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
dataSource=com.mchange.v2.c3p0.ComboPooledDataSource
dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://localhost:3306/db_shiro
dataSource.user=root
dataSource.password=root
jdbcRealm.dataSource=$dataSource
securityManager.realms=$jdbcRealm
接下来写个ShiroDemo.java来测试是否连接上数据库进行验证
package com.hp.hello;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
public class ShiroDemo {
public static void main(String[] args) {
//读取配置文件 初始化SecurityManager工厂IniSecurityManagerFactory
Factoryfactory=new IniSecurityManagerFactory("classpath:jdbc_ream.ini");
//获得SecurityManager实例
SecurityManager instance = factory.getInstance();
//把SecurityManager的实例绑定到SecurityUtils上面
SecurityUtils.setSecurityManager(instance);
//获取当前执行的用户
Subject subject = SecurityUtils.getSubject();
//创建token 令牌 用户名/密码
UsernamePasswordToken token=new UsernamePasswordToken("zs", "123");
try{
//登录/身份认证
subject.login(token);
System.out.println("身份认证成功...");
}catch(Exception e){
e.printStackTrace();
System.out.println("身份认证失败...");
}
//退出
subject.logout();
}
}
效果图 首先来看看正确的是否连接上
输入错误的密码修改如下如图
运行如下