[main]
dataSou=com.mchange.v2.c3p0.ComboPooledDataSource
dataSou.driverClass=com.mysql.jdbc.Driver
dataSou.jdbcUrl=jdbc:mysql://localhost:3306/shiro
dataSou.user=root
dataSou.password=root
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.dataSource=$dataSou
securityManager.realm=$jdbcRealm
package com.bjsxt.shiro;

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 TestB {
    public static void main(String[] args) {

    //    解析shiro.ini文件
        Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shrio-jdbc.ini");
    //    通过SecurityManger工厂获得SecurityManger对象
        SecurityManager instance = factory.getInstance();
    //    把SecurityManger对象放在运行环境中
        SecurityUtils.setSecurityManager(instance);
    //    通过SecurityManger获得主体subject
        Subject subject = SecurityUtils.getSubject();
    //    书写自己的账号和密码
        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("zs","123");

    //    进行比较
        subject.login(usernamePasswordToken);
        if (subject.isAuthenticated()){
            System.out.println("登录成功");
        }else {
            System.out.println("登录失败");
        }
    }
}

老师,这是我的ini文件和Java文件,当我点击运行之后他就一直运行,也不出来结果

图片.png

相关课程:JAVA 全系列>第九阶段:权限控制与安全认证>Shiro(旧)>shiro中的JDBCRealm

©2014-2023 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备13018289号-12    营业执照    经营许可证:京B2-20212637