作者:var dump
链接:https://zhuanlan.zhihu.com/p/23300328

最近要做一个基于Java C/S架构的项目,主要涉及权限管理这方面的东西。了解到Apache Shiro适合做这个。其官网上教程写的很好,打算把这些教程翻译成英文,这是第一篇。

Apache shiro是什么?

Apache Shiro是一款强大、灵活的开源安全管理框架,以十分优雅的方式处理authentication(身份验证)、authorization(授权)、enterprise session(企业会话?)和cryptography()加密。

译者:一些在Shiro中的专用名词将不会译为中文,但译者会根据自己的理解在括号中给出中文释义。

Apache Shiro的首要目标就是易于上手和容易理解。在软件中,安全管理有时会非常复杂、痛苦,但Apache Shiro会让它变得非常简单。下面是Apache Shiro可以做的事:

  • 鉴别用户身份
  • 管理用户权限,例如:判断用户是否有某一角色或用户是否被允许做某一操作
  • 即使没有web或EJB容器,也可以使用session API
  • 在鉴别用户身份时、权限管理时或session生命周期内进行一些操作
  • 可以聚合一个或多个用户权限数据源并且以用户视图的形式统一表现出来
  • 实现了单点登录功能(SSO)
  • 无需登录便可实现“记住我”这一功能
    ...

那么Shiro可以用在哪些类型的应用中呢?小到命令行程序,大到企业级应用,Shiro几乎可以用在任何场景中。

Apache Shiro的特色

Apache Shiro是一款应用广泛的安全管理框架,有很多特色。下图展示了Shiro的整体架构,本系列教程也会以此为根据组织顺序。

 Shiro的目标是做好Authentication(身份鉴别)、Authorization(权限管理)、Session Management(会话管理)、Cryptography(加密)四个方面(这是软件安全的四大基石)。

  • Authentication(身份鉴别):有时指登录,鉴别用户的身份
  • Authorization(权限管理):决定用户是否有权访问某物
  • Session Management(会话管理):即使不是web应用也不是EJB应用,仍然可以管理具有明确用户的session(会话)
  • Cryptography(加密):利用加密算法保证数据安全

为了支持更多的应用场景,Shrio还具有其他特色:

    • 支持web应用
    • 缓存:保证了安全管理的速度和效率
    • 并发:支持多线程应用
    • 测试:可以通过单元测试和集成测试验证程序的安全性
    • “Run As”:允许用户将某一身份赋予另一用户(在一些行政管理软件中常用)
    • “Remember Me”:在Session(会话)期间记住用户身份,当只有强制要求登录是才需要用户登录

Apache Shiro简介的更多相关文章

  1. 【Shiro】一、Apache Shiro简介

    一.Apache Shiro简介 1.简介 一个安全性框架 特点:功能丰富.使用简单.运行独立 核心功能: Authentication(认证):你是谁? Authorization(授权):谁能干什 ...

  2. Shiro学习总结(1)——Apache Shiro简介

    1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比springSecurity,可能没有Spring Securit ...

  3. Apache Shiro 简介

    使用 Apache Shiro 为 web 应用程序进行用户身份验证 Shiro 是一个 Apache Incubator 项目,旨在简化身份验证和授权.在本文中,了解 Apache Shiro 并通 ...

  4. Apache Shiro和Spring Security的详细对比

    参考资料: 1)Apache Shiro Apache Shiro:http://shiro.apache.org/ 在Web项目中应用 Apache Shiro:http://www.ibm.com ...

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

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

  6. Apache Shiro 学习记录5

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

  7. 第一章 Shiro简介——《跟我学Shiro》(转)

    目录贴:跟我学Shiro目录贴 1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可 ...

  8. Apache Shiro (一)

    参考博客: http://jinnianshilongnian.iteye.com/blog/2018398 1.shiro简介 Apache shiro 是一个JAVA框架,可用于身份难和授权.sh ...

  9. Shiro简介

    1.简介 Apache Shiro是一个功能强大且易于使用的Java安全框架,进行身份验证,授权,加密和会话管理,可用于保护任何应用程序 - 从命令行应用程序,移动应用程序到大型的Web应用和企业应用 ...

随机推荐

  1. OneProxy的功能与限制

     数据库中间件的核心目的之一就是尽可能透明的线性扩展数据库能力.其主要功能介绍参考(http://www.onexsoft.com/zh/oneproxy.html). 但是透明只是相对的,下面就简要 ...

  2. informix dbaccess 常用执行方式及常见技巧

    假设: A.数据库servername: testserver B.数据库名:testdb C.SQL脚本文件: sqlfile.sql create table test_table(c1 inte ...

  3. java多线程之CAS

    前言 在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全.下 ...

  4. Merkle Patricia Tree (MPT) 树详解

    1.    介绍 Merkle Patricia Tree(简称MPT树,实际上是一种trie前缀树)是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对.以太坊区块的头部包 ...

  5. mysql 配置 utf8 依然乱码

    mysql 乱码问题排除方案: 1.检查数据库及数据表是不是utf8字符集 2.查看一下jdbc.properties配置的数据库url 是否配置了characterEncoding=UTF-8或者在 ...

  6. easy ui datagrid 中getSelections方法只能获取一行数据

    解决方案:设置  idField : "", // 设置标识

  7. cron

    pre.cjk { font-family: "Nimbus Mono L", monospace } p { margin-bottom: 0.1in; line-height: ...

  8. iOS开发UI篇—UIScrollView控件介绍

    iOS开发UI篇—UIScrollView控件介绍 一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 ...

  9. Hadoop1.2.1 全集群3节点安装-rpm安装

    1.在三个节点上安装JDK RPM 2.在三个节点上安装HADOOP-1.2.1 RPM rpm方式安装和gz解压方式安装后的目录结构有些不同.安装好之后无需设置HADOOP_HOME环境变量 [ro ...

  10. html a 链接标签title属性换行鼠标悬停提示内容的换行效果

    鼠标经过悬停于对象时提示内容(title属性内容)换行排版方法,html title 换行方法总结. html的title属性默认是显示一行的.如何换行呢? 这里DIVCSS5总结介绍两种换行方法为大 ...