有关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. 这就是我们的身份验证,后期待更新

学习了解Shiro框架的更多相关文章

  1. shiro框架的学习

    1shiro框架是什么:是一个权限控制的框架2shiro框架有什么作用:权限管理,管理那些资源是否需要登录才能访问.控制某些资源需要那些权限才能访问3shiro框架怎样使用: 1在web.xml配置s ...

  2. shiro框架学习-5-自定义Realm

    1. 自定义Realm基础 步骤: 创建一个类 ,继承AuthorizingRealm->AuthenticatingRealm->CachingRealm->Realm 重写授权方 ...

  3. JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作

    1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...

  4. 《shiro框架》

    20170929 shiro授权流程学习 shiro-filter执行流程 CacheManager(shiro缓存管理) JEESITE登录流程简单梳理 shiro与springMVC整合 shir ...

  5. Shiro框架 (原理分析与简单实现)

    Shiro框架(原理分析与简单实现) 有兴趣的同学也可以阅读我之前分享的:Java权限管理(授权与认证)CRM权限管理   (PS : 这篇博客里面的实现方式没有使用框架,完全是手写的授权与认证,可以 ...

  6. shiro框架的组成和内部结构(下一篇为spring整合shiro)

    1.shiro简介 Apache Shiro是Java的一个安全框架.功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案. ​ 实际上,Shir ...

  7. shiro框架总结

    一.概念 shiro是一个安全框架,主要可以帮助我们解决程序开发中认证和授权的问题.基于拦截器做的权限系统,权限控制的粒度有限,为了方便各种各样的常用的权限管理需求的实现,,我们有必要使用比较好的安全 ...

  8. Shiro权限验证代码记录,正确找到shiro框架在什么地方做了权限识别

    权限验证方式的验证代码: org.apache.shiro.web.servlet.AdviceFilter这个类是所有shiro框架提供的默认权限验证实例类的父类 验证代码: public void ...

  9. Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析

    经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer 类源码的朋友可以先看下我前面几篇文章: <Java并发包源码学习 ...

随机推荐

  1. [Spark] 04 - HBase

    BHase基本知识 基本概念 自我介绍 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”. ...

  2. filebeat的@timestamp字段时区问题

    最近使用filebeat进行日志采集,并通过logstash对日志进行格式化处理. filebeat采集数据后,会给日志增加字段@timestamp,@timestamp是UTC时间,查看日志很不方便 ...

  3. Android Studio [Activity的生命周期]

    package com.xdw.a122; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; imp ...

  4. SpringBoot定时任务,总有一款适合你

    title: SpringBoot定时任务,总有一款适合你 date: 2019-09-28 16:19:10 tags: - springboot - 定时任务 categories: java - ...

  5. 基于操作系统原理的Linux的内存管理

    一.实验目的 1.理解虚拟内存.磁盘缓存的概念. 2.掌握基本的内存管理知识. 3.掌握查看实时查看内存.内存回收的方法 二.实验内容 1. 监控内存使用情况 2. 检查和回收内容 三.实验平台 1. ...

  6. 关于react-router最新版本的使用

    现在react-router已经更新到了5.1.1版本,在一些使用方法上较之前有了很多改变,现做初步列举,以后会陆续更新. 关于引入react-router和基本使用 旧版本中引入react-rout ...

  7. ELK 学习笔记之 elasticsearch启动时Warning解决办法

    elasticsearch启动时Warning解决办法: 转载:http://www.dajiangtai.com/community/18136.do?origin=csdn-geek&dt ...

  8. JVM(五)回收机制

    1.对象的引用 JDK1.2之后,对象的引用分为了四种情况    强引用:Object obj = new Object():只要强引用还在,垃圾回收器就永远不会收集被引用的对象.    软引用:So ...

  9. Activity的四种加载模式详解:

    先来看看总结图: 模式详解: standard模式: 标准启动模式,也是activity的默认启动模式.在这种模式下启动的activity可以被多次实例化,即在同一个任务中可以存在多个activity ...

  10. dubbo配置负载均衡、集群环境

    再用dubbo作为项目架构的时候,给consumer消费者用nginx提供了负载均衡策略和集群的实现, 但是想了下,consumer再多,但是提供者还是一个,最后还不都是落到了这一个provider上 ...