有关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. 【linux】【Fabric】Centos7搭建Fabric运行环境

    1.安装jdk1.8配置环境变量 参考:https://www.cnblogs.com/jxd283465/p/11541506.html 2.安装git yum -y install git 3.安 ...

  2. 【Jsp】利用iframe实现action不跳转

    <form role="form" target="id_frame" action="dk" method="post&q ...

  3. 23种设计模式之代理模式(Proxy Pattern)

    在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替 ...

  4. Spring MVC 梳理 - 四种HandlerMapping

    总结 (1)SpringMVC导入jar包,配置web.xml 这些都是基础的操作. (2)四种HandlerMapping:DefaultAnnotationHandlerMapping;Simpl ...

  5. 夯实Java基础系列12:深入理解Java中的反射机制

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  6. 图解Mongo Shell的使用

    mongo shell是一个MongoDB的交互式JavaScript接口.您可以使用mongo shell来查询和更新数据以及执行管理操作. 本篇经验将和大家介绍Mongo Shell的使用方法,希 ...

  7. 【Java】web实现图片在线预览

    一.场景还原 用户上传了一张图片,已有服务器保存路径,现由于系统配置无法直接通过图片URL打开预览图片,需实现点击预览将图片显示在浏览器上. 二.实现方法 html: <a href=" ...

  8. xamarin开发的mac开发小工具集合

    兄弟们我拖控件拖到了mac系统去了, 工具上传到百度网盘,下载地址 链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww提取码:ljx2 这款工具我是用 ...

  9. Fcitx使用搜狗词库与皮肤

    在 \(\text{Linux}\) 环境下,\(\text{Fcitx}\) 确实是最好用的开源输入法之一.然而 \(\text{Windows}\) 下的巨头输入法 -- 搜狗,对 \(\text ...

  10. Docker学习1-CentOS 7安装Docker

    前言 docker 是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源. docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 ...