作者: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(会话)期间记住用户身份,当只有强制要求登录是才需要用户登录

最新文章

  1. 五种常见的 PHP 设计模式
  2. jQuery简介及语法
  3. iOS移动下上传图片失败解决 (上传多图,带其他参数)
  4. 开放平台-web实现人人网第三方登录
  5. Node.js小Httpserver
  6. EXT ajax简单实例
  7. 多线程09-Lock和Condition
  8. VLV INDEX
  9. 函数:lambda表达式 - 零基础入门学习Python021
  10. HDU1242 Rescue(BFS+优先队列)
  11. python_协程方式操作数据库
  12. THE SCHOOLS WHERE APPLE, GOOGLE, AND FACEBOOK GET THEIR RECRUITS
  13. P1494 [国家集训队]小Z的袜子
  14. vs2008 点击"转到定义"为什么是"未定义符号"
  15. NDK时间测量
  16. RPC通信原理(未完,先睡觉)
  17. python测试开发django-28.发送邮件send_mail
  18. golang array, slice, string笔记
  19. WINCRIS的使用
  20. 调用kylin的restAPI接口构建cube

热门文章

  1. SQL Server去掉字段内的双引号
  2. zabbix3.0.4 部署之六 (zabbix3.0.4安装)
  3. zabbix3.0.4 部署之二 (Centos6.5系统准备)
  4. Cryptopp iOS 使用 RSA加密解密和签名验证签名
  5. spring.xml中的配置
  6. C# checkboxlist的使用
  7. jQuery键盘控制方法,以及键值(keycode)对照表
  8. OC测试错误整理
  9. 黑马程序员——OC语言 三大特性之多态
  10. js的匿名函数和js的onload函数