码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-04 23:25:16      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:manage   path   为我   stat   关注   实现   gpo   ring   res   

一 . 环境的搭建

我们使用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.这个过程是我们下面需要讲解的.

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

标签:manage   path   为我   stat   关注   实现   gpo   ring   res   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!