• 学习了解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. 这就是我们的身份验证,后期待更新

  • 相关阅读:
    Android Gallery和ImageSwitcher同步自动(滚动)播放图片库
    Android PullToRefreshListView和ViewPager的结合使用
    AndroidTagView云标签
    Android 两步搞定Fragment的返回键
    Android Fragment数据传递与数据回显
    Glide加载圆形图片第一次只显示默认图片
    Android 自定义EditText实现类iOS风格搜索框
    TabLayout中Indicator的样式修改
    Kali linux2.0里Metasploit的服务类型探测
    Kali linux 2016.2(Rolling)中的Nmap的端口扫描功能
  • 原文地址:https://www.cnblogs.com/liujunwei/p/11697065.html
Copyright © 2020-2023  润新知