shiro的shiro.ini配置文件的帐号密码登录验证

论坛 期权论坛 脚本     
匿名技术用户   2020-12-21 19:54   11   0
package cn.zz;

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;
import org.junit.Test;

/**
 * 测试
 */
public class ShiroTest {
    @Test
    public void testLogin(){
        //1创建securitManager工厂对象:加载配置文件
        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
        //2创建SecurityManager对象
        SecurityManager instance = factory.getInstance();
        //3将SecurityManager绑定到当前运行环境中,让系统随时可以访问到SecurityManager对象
        SecurityUtils.setSecurityManager(instance);
        //4获取当前登陆的主体 注意:此时主体没有经过认证
        Subject subject = SecurityUtils.getSubject();
        //5绑定主体登陆的身份/凭证,即帐号密码
        //参数1 :帐号 参数2 :密码
        /**异常:
         * 帐号错误会报 UnknownAccountException
         * 密码错误会报 IncorrectCredentialException
         */
        UsernamePasswordToken token = new UsernamePasswordToken("zhangsan", "666");
        //6主体登陆
        try {
            subject.login(token);
            System.err.println("登陆成功");
        }catch (Exception e){
            System.err.println("登陆失败");
            e.printStackTrace();
        }
        //7判断是否登陆成功 打印 true
        System.err.println("验证是否--登陆成功"+subject.isAuthenticated());
        //8登出 打印 false
        subject.logout();
        System.err.println("验证是否--登陆成功"+subject.isAuthenticated());
    }
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP