zoukankan      html  css  js  c++  java
  • 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();

            }

        }

    }

     

  • 相关阅读:
    CDH 下线节点
    Linux下如何查看哪些进程占用的CPU内存资源最多
    CentOS7安装iptables防火墙
    Mysql 编译报错 g++: internal compiler error: Killed (program cc1plus) 解决办法
    Jenkins配置gitlab
    mysql连接卡死,很多线程sleep状态,导致CPU中mysqld占用率极高
    c++0.1-----基于对象知识大综合(非指针篇)
    c++0.0-----挖坑
    python0.16------构造函数/析构函数/self详解/重写/访问限制/对象属性和类属性/@property/运算符重载
    python0.15-----继承和多态
  • 原文地址:https://www.cnblogs.com/ong-zhanhon/p/10846556.html
Copyright © 2011-2022 走看看