• 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();

            }

        }

    }

     

  • 相关阅读:
    HDU1171(01背包均分问题)
    HDU2159(完全背包)
    HDU1203(01背包变形)
    DAG上的DP
    ADB命令小结
    HDU3065(AC自动机入门题)
    HDU2896(AC自动机入门题)
    性能测试监控分析(13)-sysstat安装升级
    tomcat(9)-linux apache tomcat集群环境搭建
    nginx(4)-负载均衡的5种策略及原理
  • 原文地址:https://www.cnblogs.com/ong-zhanhon/p/10846556.html
Copyright © 2020-2023  润新知