Shiro


概述:shiro是一个非常强大的、易于使用的、开源的、权限框架。它包括了权限校验、权限授予、会话管理、安全加密等组件。


Shiro下载路径:http://shiro.apache.org/download.html
所有包的说明,根据列表的说明,下载我们需要的jar包

基础支撑包说明:

 

 

常用的类名

Authentication:权限校验,每次操作校验用户是否有访问权限
Authorization:授权,用户登录时,授予用户对应的权限
Session Management:会话管理,用于记录用户的登录状态
Cryptography:加密,加密算法的实现(SHA、MD5)
web Support:对Web项目的支持,Shiro的标签!

 

入门事例:
第一步:创建项目,导入包名

 


第二步:创建一个shiro.ini文件,配置ini文件,编写权限认证信息。
注意事项:(1)shiro.ini文件名可以任意编写,但后缀必须是ini
     (2)shiro.ini配置文件放在classpath根目录下

#配置用户名和密码,设置角色名roles_admin

[users]

admin=123456, roles_admin

#配置角色权限,可以配置多个

[roles]

roles_admin=admin:List, admin:create, admin:delete, admin:edit, admin:add

 

第三步:创建SecurityManager对象

cn.hzh.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;

 

public class ShiroTest {

 

    public static void main(String[] args) {

        // shrio框架读取ini配置文件

        IniSecurityManagerFactory ismf = new IniSecurityManagerFactory("classpath:shiro-config.ini");

        // 获得SecurityManager对象

        SecurityManager securityManager = ismf.createInstance();

 

        // 设置一个身份对象Subject

        SecurityUtils.setSecurityManager(securityManager);

        // 获得一个身份对象Subject

        Subject subject = SecurityUtils.getSubject();

 

        // 设置用户名和密码

        UsernamePasswordToken token = new UsernamePasswordToken("admin", "123456");

 

        try {

    // 校验参数

            Subject resultSubject = securityManager.login(subject, token);

           //校验通过就获得用户名,校验不通过就报异常

     System.out.println("验证通过获取用户名:" + resultSubject.getPrincipal());

        } catch (AuthenticationException e) {

            e.printStackTrace();

        }

    }

}

 

原文地址:https://www.cnblogs.com/ong-zhanhon/p/10846556.html