zoukankan      html  css  js  c++  java
  • Shiro进行简单的身份验证(二)

    一个Realm数据源:

    shiro.ini:

    [users]
    wp=123456

    main方法执行认证:

    package com.wp.shiro;
    
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.authc.AuthenticationException;
    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 HelloWord {
        public static void main(String[] args) {
            // 读取配置文件,初始化SecurityManager工厂,SecurityManager类似SpringMVC中的DispatcherServlet或者Struts2中的FilterDispatcher
            Factory<SecurityManager> factory = new IniSecurityManagerFactory(
                    "classpath:shiro.ini");
            // 获取SecurityManager实例
            SecurityManager securityManager = factory.getInstance();
            // 把securityManager实例绑定到SecurityUtils
            SecurityUtils.setSecurityManager(securityManager);
            // 得到当前执行的用户
            Subject currentUser = SecurityUtils.getSubject();
            // 创建token令牌,用户名和密码
            UsernamePasswordToken token = new UsernamePasswordToken("wp", "123456");
            try {
                // 身份认证
                currentUser.login(token);
                System.out.println("身份认证成功!");
            } catch (AuthenticationException e) {// Authentication为认证器,这里之认证异常
                e.printStackTrace();
                System.out.println("身份认证失败!");
            }
            // 退出
            currentUser.logout();
        }
    }
    AuthenticationException为认证异常:DisabledAccountException( 禁用的 帐号) 、 LockedAccountException( 锁定的 帐号) 、
    UnknownAccountException(错误的帐号) 、 ExcessiveAttemptsException(登录失败次数过
    多) 、 IncorrectCredentialsException (错误的凭证) 、 ExpiredCredentialsException(过期的
    凭证)
    认证的流程:
    用户进行login时,会交给securityManage进行委托,在此之前先通过securityUtils.serSecurityManager进行设置;Security进行身份验证,它会交给认证器Authenticator进行认证;Authentication又交给AuthenticationStrategy去Realm中验证,同时Authenticator
    把相应的token传入Realm,从Realm获取身份信息,如果没有或抛出异常,则身份认证失败。

    Java小生店铺:

    Pc端:http://shop125970977.taobao.com/index.htm

    手机端:搜索 java小生店铺

    希望店铺的资料能帮助到你!!!

     

    
    
  • 相关阅读:
    基础网络技术--学习网络的的道路漫长啊
    华为nova8se和vivoS7e的区别哪个好
    Java.awt实现一个简单的围棋
    HashMap put原理详解(基于jdk1.8)
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    【u116】最短路计数
    【u108】取数游戏
    【u106】3D模型
    【topcoder SRM 652 DIV2 250】ValueOfString
    【u103】绘制二叉树
  • 原文地址:https://www.cnblogs.com/lirenzhujiu/p/5919151.html
Copyright © 2011-2022 走看看