学习了解Shiro框架

有关Shiro安全框架

  1. 实现权限的几种方式

    1)通过表来实现
    2)shiro框架
    3)Spring Security框架
    
  2. shiro有哪些主要功能

1.授权

访问控制的过程,即确定谁有权访问

2.身份认证

有时被称为“登录”

3.会话管理

特定于用户的回话管理,甚至在非WEB或EJB应用程序

4.加密

保持数据安全使用加密算法,同时仍然容易使用

详情可以查看我们Shiro的官方文档

官方文档

搭建Shiro环境

  1. 搭建一个普通的Maven项目

  2. 在你的pom.xml文件导入依赖

       <dependencies>
            <!-- shiro框架依赖 -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>1.2.4</version>
            </dependency>
            <!-- 日志依赖 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.12</version>
            </dependency>
        </dependencies>
    

    功能实现一:身份验证

    1. 实现思路

    2. 在src.main.java创建com.shiro文件夹

    3. 在你的src.main.resources创建文件shiro.ini与log4j.properties文件

      shiro.ini文件

      [users]
      admin=123456
      lisi=123
      wangwu=1234
      

      log4j.properties

      #设置全局的日志配置
      log4j.rootLogger=ERROR, stdout
      #设置自定义的日志级别
      log4j.logger.com = debug
      #控制输出位置和格式 (具体怎么设置不太清楚照搬)
      log4j.appender.stdout=org.apache.log4j.ConsoleAppender
      log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
      log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
      
    4. 在你的shiro文件夹创建类ShiroDay01.java(看代码的注释,注意类的包)

      package com.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;
      import org.apache.shiro.util.Factory;
      
      /**
       * @Classname ShiroDemo1
       * @Description TODO
       * @Date 2019/10/18 9:35
       * @Created by 我的有趣住在无趣里
       */
      public class ShiroDay01{
          public static void main(String[] args) {
              //SecurutyManager--->Factory
              Factory<SecurityManager> factory =null;
              //读取shiro.ini配置文件的信息
              factory = new IniSecurityManagerFactory("classpath:shiro.ini")
              //ctrl+alt+V;快速生成变量及对应的数据类型
              /*factory.getInstance();*/
              SecurityManager securityManager = factory.getInstance();
             //当前用户:Subject
              SecurityUtils.setSecurityManager(securityManager);
              //当前用户
              Subject user = SecurityUtils.getSubject();
              //通过UsernamePasswordToken来模拟Html/jsp传递过来的用户名和密码
              //修改带的参数可以对数据库的进行验证
              UsernamePasswordToken token = new UsernamePasswordToken("admin","123456");
              try{
                  //通过shiro判断用户是否登录成功
                  user.login(token);
                  System.out.println("登录成功!");
              }catch (AuthenticationException e){
                  System.out.println("登录失败!");
              }
          }
      }
      
    5. 这就是我们的身份验证,后期待更新

posted @ 2019-10-18 10:51  我的有趣住在无趣里  阅读(388)  评论(0编辑  收藏  举报