002 使用固定信息模拟认证过程--理解认证的过程

一 . 环境的搭建

我们使用maven来搭建工程.

<dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.3.0</version>
</dependency>本次使用的1.3.0的版本.

当然为了更好的shiro的运行过程,我们导入日志组件包.

本次使用log4j来完成.

<dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>


二 .在resource目录下创建一个shiro.int文件

[users]
zhangsan=123
trek=123

我们创建了两个固定信息的用户,一个是张三,密码为123.另一个为trek,密码为123.



三.实现认证

public class ShiroTest {
    private static final Logger logger = LoggerFactory.getLogger(ShiroTest.class);
    public static void main(String[] args) {
        //创建SecurityManager
        SecurityManager manager = new IniSecurityManagerFactory("classpath:shiro.ini").getInstance();
        //将securityManager设置到当前环境下
        SecurityUtils.setSecurityManager(manager);

        //获取Subject对象
        Subject subject = SecurityUtils.getSubject();
        //创建token --
        UsernamePasswordToken token = new UsernamePasswordToken("zhangsan","1233");
        //实现登录
        try {
            subject.login(token);
        } catch (AuthenticationException e) {
            logger.error("认证失败!!!");
            return ;
        }
        logger.info("认证成功!!!");
    }
}

整个认证的过程非常简单:

[1]前面的部分我们不需要关注.主要知道我们在设置SecurityManager就可以了.

[2]创建Subjcet对象,将账号和密码传给login方法

[3]这个方法会出现异常,我们需要进行捕获.这个异常的问题我们后面会重点关注的.

[4]如果没有问题就说明我们的认证过程成功了.


AuthenticationException异常:这个异常是shiro认证过程中的核心异常,shiro为我们创建了一些常用的异常.如 : 账号不存的异常,密码不正确的异常,账号被锁定的异常等.我们可以捕获不同的异常实现自己的业务逻辑.

总结一下 : shiro的认证我们就需要调用login方法,传入token对象就可以了.如果要自定义认证过程就需要重写认证器和Realm.这个过程是我们下面需要讲解的.

原文地址:https://www.cnblogs.com/trekxu/p/8719244.html

时间: 2024-08-03 04:32:28

002 使用固定信息模拟认证过程--理解认证的过程的相关文章

我对测试的理解的变迁过程

从入行一开始就决定了不走技术路线,因为游戏之所以是游戏是因为其游戏性而不是技术性,我爱的是游戏,而不是技术. 1:刚入行的时候:找严重bug,或者操作步骤很多的bug,很有成就感,因为找到别人找不到的bug 2:后来意识到,基础的简单的bug价值不见得比严重的难找的bug价值低,开始转向追求覆盖.不漏基础简单的bug 3:开始关注流程,流程可以减少人为失误导致的bug,开始关注预防bug,特别是通过流程来预防人为bug 4:认为流程最重要,几乎所有的bug都可以通过流程来预防和解决 5:认为测试

POST信息模拟登录获取页面内容

最近项目里有一个是要模拟登录后,访问固定页面获取内容的要求,一开始用JQ AJAX好像不支持跨域请求.后使用.net中HttpWebRequest对象来获取.一开始访问总是无法在第二个页面正常访问,好像没通过登录验证,用postman模拟提交正常,后查询出原是忘记在第二次请求没把cookies关联上,关联上后请求正常. string wurl=""; string username="haxinet"; string userpwd="haxinet&qu

uboot启动过程理解

对于2440而言,启动的方式不多.一般就是外界一个NAND FLASH ,2440内部有个NAND FLASH Controller,会自动把NAND FLASH的前4K拷贝到2440的片内SRAM.2440这个片内SRAM就是所谓的 Stepping Stone刚好也是4K.     在制作启动代码时,就是uboot.一般会把uboot分为两个部分,一般就会叫做BL1和BL2. BL1和BL2两者相加就是整个uboot.这两个部分各有分工.     为了符合2440的特点,BL1的大小会被设置

微信在线信息模拟测试工具(基于Senparc.Weixin.MP)

目前为止似乎还没有看到过Web版的普通消息测试工具(除了官方针对高级接口的),现有的一些桌面版的几个测试工具也都是使用XML直接请求,非常不友好,我们来尝试做一个“面向对象”操作的测试工具. 测试工具在线DEMO:http://weixin.senparc.com/SimulateTool Senparc.Weixin.MP是一个开源的微信SDK项目,地址:https://github.com/JeffreySu/WeiXinMPSDK (其中https://github.com/Jeffrey

用递归正/逆序打印一个数组,以及调用返回的过程理解

1 #include <stdio.h> 2 /* 3 题目:用递归正/逆序打印数组的元素,以及递归调用的过程理解 4 正序打印数组解题思路:第一:数组元素是连续的.知道第一个元素的地址,就能推算出第二个元素的地址.以此类推 5 第二:数组的结束条件:i = sizeof(arr)/4 -1; 此时的值为arr[sizeof(arr)/4-1]; 6 第三:后一个元素的值的下标 = 前一个元素的值的下标+1 (通项公式) 7 */ 8 void arr1(int *p,int n,int *p

asp.net权限认证:摘要认证(digest authentication)

asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) 一.摘要认证由来 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(dige

【密码学】ssl双向认证和单向认证原理

有朋友在搞一个项目,周末有聊到一些安全性的东西,很自然会想起https,但https究竟如何实施,其原理又是什么? 基于ssl,一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向认证. 网上google一下: 为了便于更好的认识和理解 SSL 协议,这里着重介绍 SSL 协议的握手协议.SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术.SSL 的握手协议非常有效的让客户和服务器之间完成相互

[转]asp.net权限认证:摘要认证(digest authentication)

本文转自:http://www.cnblogs.com/lanxiaoke/p/6357501.html 摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication) 我是觉得真心不错,让我少走很多弯路.这篇文章主要是对上边引用文章的讲解,老司机可以略过. 老规矩,上摘认证的工作流

关于身份认证、角色认证和权限认证的shiro-web例子

shiro是Java的一个安全框架,其中认证.授权也是其核心知识.下面以一个maven构建的运用shiro框架的Web项目示例进行 分析和讲解,来理解shiro关于身份认证.和角色认证及权限认证的处理过程. 一.shiro集成web项目需配置的地方 说明:在进行如下配置之前,需建立maven管理的web项目(参考创建maven管理的web项目).这里不再赘述. 1.pom.xml文件添加shiro依赖的jar包 2.web.xml配置添加 初始化shiro环境配置 3.shiro.ini配置 二