pom.xml4.0.0 com.fjm shiro1 0.0.1-SNAPSHOT org.apache.shiro shiro-core 1.2.3 org.slf4j slf4j-log4j12 1.7.5 provided log4j log4j 1.2.14 provided com.mchange c3p0 0.9.2 mysql mysql-connector-java 5.1.6 commons-logging commons-logging 1.2
jdbc_realm.ini
[main]jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealmdataSource=com.mchange.v2.c3p0.ComboPooledDataSourcedataSource.driverClass=com.mysql.jdbc.DriverdataSource.jdbcUrl=jdbc:mysql://localhost:3306/shiro_dbdataSource.user=rootdataSource.password=521314jdbcRealm.dataSource=$dataSourcesecurityManager.realms=$jdbcRealm
testClass
public class JdbcTealmTest { public static void main(String[] args) { //获得shiro工厂 【从数据库中获取用户名和密码和令牌中的比较】 Factoryfactory = new IniSecurityManagerFactory("classpath:jdbc_realm.ini"); //获得工厂实例 SecurityManager securityManager = factory.getInstance(); //绑定securityManager到SecurityUtils SecurityUtils.setSecurityManager(securityManager); //获得当前执行用户 Subject currentUser = SecurityUtils.getSubject(); //创建令牌 UsernamePasswordToken token = new UsernamePasswordToken("fengjunming", "123456"); try { currentUser.login(token); System.out.println("身份验证成功!!!"); } catch (Exception e) { e.printStackTrace(); System.out.println("身份验证失败!!!"); } }}