首页 > 编程语言 > 详细

java安全框架shiro(一)

时间:2018-03-24 18:27:34      阅读:392      评论:0      收藏:0      [点我收藏+]

第一个简单的案例 ,通过读取.ini文件的方式模拟登陆,

1.通过Factory工厂的getInstance()方法来获取SecurityManager的实例,实例化Factory需要一个ini文件的路径作为参数;

2.将上面获取的实例set到 SecurityUtils这个类里,SecurityUtils类有一个get方法来获取Subject类

3.Subject这个类就是用来登陆和退出的,但是需要一个AuthenticationToken实例作为参数

上面是步骤,下面就来一步一步的介绍,最后会在最下面给出代码


技术分享图片

第二步我就不说了,方法是静态的,直接类名调用就好了;

现在来到第三步,现在应该是得到subjiect的实例了,需要登录,但是需要一个token实例

技术分享图片

 

 技术分享图片

现在token也有了,然后我们进行登录;

 技术分享图片

这里给出一个.ini文件的基本示例,把这个文件所在的路径填入第一步实例化工厂时的参数里即可

 技术分享图片

最后给出简单案例的代码

package com;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationToken;
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;

/**
 * 测试shiro第一个案例
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        {
            /*实例化工厂*/
            Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
           /*获取实例*/
            SecurityManager instance = factory.getInstance();
            /*设置参数*/
            SecurityUtils.setSecurityManager(instance);
            /*获取登录实例*/
            Subject subject = SecurityUtils.getSubject();
            /*实例化token,传入登录的用户和密码*/
            AuthenticationToken token = new UsernamePasswordToken("admin1", "admin");
            try {
                /*进行登录*/
                subject.login(token);
                /*退出登录*/
                subject.logout();
            }catch (Exception e){
                System.out.println("登录错误!!");
            }
        }
    }
}

 

 

 


 

java安全框架shiro(一)

原文:https://www.cnblogs.com/qq376324789/p/8640651.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!