参考博客: http://jinnianshilongnian.iteye.com/blog/2018398

1、shiro简介

  Apache shiro 是一个JAVA框架,可用于身份难和授权。shiro基本功能如下:

    身份验证、授权、会话管理、加密、web支持、caching、concurrency(shiro支持多线程应用的并发难,即如在一个线程中开启另一个线程,能把权限自动传播过去)、Testing(提供测试支持)、Run As(允许一个用户假装为另一个用户的身份进行访问)、Remember Me:记住我。

    eg: Shiro不会维护用户、维护权限;这些需要我们自己去设计/提供;然后通过相应的接口注入给Shiro

  好的框架:从外部看应该具有非常简单易于使用的API,且API契约明确;从内部来看的话,其应该有一个可扩展的架构,即非常容易插入用户自定义实现,因为任何构架都不能满足需要。

  谁使用Shiro--》应用程序。从应用程序的角度来说Shiro。交互使用subject(主体),Realm(域),SecurityManager(安全管理器)。通俗一些的话,subject是行政部门与外界联系,Realm是整个公司的业务数据,工作主要由公司的核心部门(SecurityManager)支持。

  eg:最简单的一个Shiro应用:

    1. 应用代码通过Subject来进行认证和授权,而Subject又委托给SecurityManger;

    2.我们需要给Shiro的SecurityManager注入Realm,从而让SecurityManger能得到合法的用户及其权限进行判断。

  shrio 不提供维护用户权限,而是通过Realm让开发人员自己注入。

  Shiro如何工作--》Security Manager 如何与其他组件交互的?

    Authenticator(认证器):需要认证策略,可以自定义。

    Realm(数据源):可以有一个或多个。安全实体数据源.JDBC,LDAP,内存等。由用户提供。eg:Shiro不知道你的用户/权限存储在哪以及以何种格式存储;所以我们一般在应用中都需要实现自己的Realm;

    SessionManager(会话管理):Shrio抽象一个自己的Session来管理主体与应用之间交互的数据;这样的话,比如我们在WEB环境用,刚开始是一台WEB服务器;接着又上了台EJB服务器;这时想把两台服务器的会话数据放在一个地方,这个时候就可以实现自己的分布式会话了(如把数据放到Memcached服务器)

    SessionDao:写到数据库。想把session 放到 memcached中,可以实现自己的Memcached SessionDao;另外SessionDAO可以使用Cache进行缓存,以提高性能;

     cacheMember:缓存控制器.

    Cryptography:密码模块.

    总结:shiro就是使用subject与外界进行联系。用户通过Realm写入控制的授权用户与权限。shiro使用SecurityManger通过与其内部的其他组件的交互实现功能的。

Apache Shiro (一)的更多相关文章

  1. Apache Shiro 学习记录5

    本来这篇文章是想写从Factory加载ini配置到生成securityManager的过程的....但是貌似涉及的东西有点多...我学的又比较慢...很多类都来不及研究,我又怕等我后面的研究了前面的都 ...

  2. Apache Shiro 学习记录2

    写完上篇随笔以后(链接).....我也想自己尝试一下写一个Strategy.....Shiro自带了3个Strategy,教程(链接)里作者也给了2个.....我想写个都不一样的策略.....看来看去 ...

  3. Apache Shiro系列(1)

    Apache Shiro是啥呢,安全框架. 360百科是这么描述的:        Apache Shiro(日语"堡垒(Castle)"的意思)是一个强大易用的Java安全框架, ...

  4. Apache Shiro系列之五,概述 —— 配置

    Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制.   ...

  5. Apache Shiro系列四,概述 —— Shiro的架构

    Shiro的设计目标就是让应用程序的安全管理更简单.更直观.     软件系统一般是基于用户故事来做设计.也就是我们会基于一个客户如何与这个软件系统交互来设计用户界面和服务接口.比如,你可能会说:“如 ...

  6. Apache Shiro系列三,概述 —— 10分钟入门

     一.介绍 看完这个10分钟入门之后,你就知道如何在你的应用程序中引入和使用Shiro.以后你再在自己的应用程序中使用Shiro,也应该可以在10分钟内搞定. 二.概述 关于Shiro的废话就不多说了 ...

  7. Apache Shiro系列一,概述 —— 初识

    一.什么是Shiro Apache Shiro是一个强大.灵活.开源的安全框架,它支持用户认证.权限控制.企业会话管理以及加密等. Apache Shiro的第一个也是最重要的一个目标就是易于使用和理 ...

  8. Apache Shiro 学习记录1

    最近几天在学习Apache Shiro......看了一些大神们的教程.....感觉收获不少.....但是毕竟教程也只是指引一下方向....即使是精品教程,仍然有很多东西都没有说明....所以自己也稍 ...

  9. [转]在 Web 项目中应用 Apache Shiro

    目录[-] 用户权限模型 图 1. 用户权限模型 认证与授权 Shiro 认证与授权处理过程 Shiro Realm 清单 1. 实现自己的 JDBC Realm 为何对 Shiro 情有独钟 与 S ...

  10. Apache Shiro 简单概念

    Apache Shiro 是ASF旗下的一款开源软件(Shiro发音为"shee-roh",日语"堡垒(Castle)"的意思),提供了一个强大而灵活的安全框架 ...

随机推荐

  1. 第四章 ngrok使用

    网址(下载):http://www.ngrok.cc/ 注册:http://www.ngrok.cc/login 管理后台:http://www.ngrok.cc/user.html 创建隧道,产生隧 ...

  2. VueJS取得URL参数

    vuejs取得URL中参数的值 地址:http://localhost:3333/#/index?id=001 结果:001 console.log(this.$route.query.id)

  3. 05 Apache Solr: 管理员界面(Admin UI)

         为了方便管理员和工程师调整Solr的配置和访问在线文档和其他的帮助,Solr提供了一个Web界面去查看Solr的配置详情,运行查询语句和分析文档字段.这个界面在第三篇里面提到过就是管理员界面 ...

  4. List<Map<String,Object>>使用Java代码遍历

    List<Map<String,Object>>的结果集怎么使用Java代码遍历以获取String,Object的值: package excel; import java.u ...

  5. 【随笔】Photoshop简单切图

    一.首先准备一张需要切割的图: 二.打开Photoshop,在ps里打开这张图片: 三.在界面的左边选择切片工具: 四.根据需要,鼠标点住上方和左边的标尺拖动,给图片加上分割辅助线: 五.用切片工具点 ...

  6. Firefox每次刷新时自动清空缓存的设置方法

    当我们开发网页应用时候,为了保证每次看到的页面是最新的,需要在刷新页面时清除页面缓存. 如果每次都手动清除比较麻烦,好在多数浏览器都支持自动清除缓存的功能. IE下我们可以将缓存设置为"每次 ...

  7. Oracle行转列(使用pivot函数)

    在日常使用中,经常遇到这样的情况,需要将数据库中行转化成列显示,如 转化为 这个时候,我们就需要使用pivot函数 百度后,参考网址http://www.2cto.com/database/20150 ...

  8. Jquery一般操作归纳

    一.DOM操作分类    1.DOM Core  getElement(s)获得元素        2.HTML-DOM  document.对象/操作标签的属性        3.CSS-DOM   ...

  9. shell常用命令之curl: -w,–write-out参数详解

    顾名思义,write-out的作用就是输出点什么.curl的-w参数用于在一次完整且成功的操作后输出指定格式的内容到标准输出. 输出格式由普通字符串和任意数量的变量组成,输出变量需要按照%{varia ...

  10. vs

    https://www.visualstudio.com/downloads/download-visual-studio-vs