什么是Apache Shiro?

Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。

Shiro为解决下列问题(我喜欢称它们为应用安全的四要素)提供了保护应用的API:

  • 认证 - 用户身份识别,常被称为用户“登录”;
  • 授权 - 访问控制;
  • 密码加密 - 保护或隐藏数据防止被偷窥;
  • 会话管理 - 每用户相关的时间敏感的状态。

Subject

在考虑应用安全时,你最常问的问题可能是“当前用户是谁?”或“当前用户允许做X吗?”。当我们写代码或设计用户界面时,问自己这些问题很平常:应用通常都是基于用户故事构建的,并且你希望功能描述(和安全)是基于每个用户的。所以,对于我们而言,考虑应用安全的最自然方式就是基于当前用户。Shiro的API用它的Subject概念从根本上体现了这种思考方式。

Subject一词是一个安全术语,其基本意思是“当前的操作用户”。称之为“用户”并不准确,因为“用户”一词通常跟人相关。在安全领域,术语“Subject”可以是人,也可以是第三方进程、后台帐户(Daemon Account)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。在代码的任何地方,你都能轻易的获得Shiro Subject,参见如下代码:

获得Subject

import org.apache.shiro.subject.Subject;
import org.apache.shiro.SecurityUtils;
...
Subject currentUser = SecurityUtils.getSubject();

SecurityManager

Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。

那么,如何设置SecurityManager呢?嗯,这要看应用的环境。例如,Web应用通常会在Web.xml中指定一个Shiro Servlet Filter,这会创建SecurityManager实例,如果你运行的是一个独立应用,你需要用其他配置方式,但有很多配置选项。

Subject的会话

Session session = subject.getSession();
Session session = subject.getSession(boolean create);

会话的方法
Session session = subject.getSession();
session.getAttribute("key", someValue);
Date start = session.getStartTimestamp();
Date timestamp = session.getLastAccessTime();
session.setTimeout(millis); ...

web.xml中的ShiroFilter
<filter><filter-name>ShiroFilter</filter-name><filter-class>org.apache.shiro.web.servlet.IniShiroFilter</filter-class><!-- 没有init-param属性就表示从classpath:shiro.ini装入INI配置 -->
</filter>
<filter-mapping><filter-name>ShiroFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

转载于:https://www.cnblogs.com/zhaoleigege/p/5809373.html

Apache Shiro java安全框架相关推荐

  1. Apache Shiro权限控制框架简介

    Apache Shiro权限控制框架简介 要想实现权限控制,可以自己写代码实现,蓄力都的权限控制可以通过过滤器Filter实现,细粒度的权限控制是基于代理对象结合自定义的注解和反射技术来实现,反射技术 ...

  2. Apache Shiro Java 反序列化漏洞分析

    Shiro概述 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.目前在Java web应用安全框架中,最热门的产品有Spring Security和Sh ...

  3. Shiro (java安全框架)

    Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证.授权.加密和会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务.并且相对于其他安全框架,Shir ...

  4. Apache Shiro Java 反序列化漏洞解决修复记录

    收到了阿里的警告 阿里漏洞扫描系统 解决办法 借鉴了 https://blog.csdn.net/Fly_hps/article/details/106112692 下载windows 扫描工具 ht ...

  5. Apache shiro介绍

    原文链接Application Security With Apache Shiro(翻译) 前面自己自己配合谷歌翻译,后面大部分谷歌翻译. 当你尝试保护你的程序时候你会被困扰吗?你会觉得现有的jav ...

  6. 视频教程-Apache Shiro权限框架实战+项目案例视频课程-Java

    Apache Shiro权限框架实战+项目案例视频课程 拥有10余年项目实战经验. 2006-2011在nttdata从事对日软件开发类工作. 2011-2015在HP从事技术服务工作. 擅长于j2e ...

  7. java shiro security_安全框架Shiro和SpringSecurity的比较

    两个基本的概念 安全实体:系统需要保护的具体对象数据 权限:系统相关的功能操作,例如基本的CRUD Shiro 首先Shiro较之 Spring Security,Shiro在保持强大功能的同时,还在 ...

  8. java权限框架_Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架

    权限系统在任何一个系统中都存在,随着分布式系统的大行其道,权限系统也趋向服务化,对于一个高级工程师来说,权限系统的设计是必不可少需要掌握的技术栈 Apache Shiro™是一个功能强大且易于使用的J ...

  9. Apache Shiro 框架简介

    一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录": 授权 ...

最新文章

  1. Web生产:外部JS文件中的绝对URL?
  2. opencv书籍调研
  3. 阿里云更新ESC镜像
  4. python变量详解_python基础教程-03-变量详解
  5. signature=cb97f07fbd7b371e6311b0d8707b6398,vue 汉字转拼音(filter)
  6. hadoop完全分布式集群下安装sqoop
  7. InnoSetup 如何获取安装程序的路径?
  8. vss2005源码管理工具使用问题
  9. 网吧网吧无盘服务器配置,网吧无盘服务器配置杂谈
  10. windows下常见php集成环境安装包介绍
  11. 三亚科技创新创业大赛完美落幕,珈和科技等五个企业获一等奖
  12. 【现已失效】【转载】QQ空间一键点赞方法
  13. 一篇文章教你选出廉价好用的家用投影仪!
  14. 抖音做直播有哪些技巧,抖音新手直播应该注意什么:国仁楠哥
  15. PHP汉字转拼音的两种方法+PHP提取汉字(中文)方法
  16. 【街道可步行性】步行通达性对街区空间活力与交往的影响 | 上海城市规划
  17. Share 很喜欢的派大星图片
  18. SRC挖掘思路及方法
  19. 在Word中巧改厘米标尺(转)
  20. 面向对象---super

热门文章

  1. iis mysql cpu_[译]通过IIS Request Filtering解决SQL Server CPU高的问题
  2. 一、vi/vim编辑器
  3. 简洁大气带进度条的URL跳转页面HTML源码
  4. QQ红包源码 大转盘抽奖源码下载 微信红包源码
  5. 2019年7月第一周总结-RabbitMQ总结
  6. WAMP + Zend Framework + Zend Studio For Eclipse 开发环境搭建
  7. CCTV2《今日观察》:谷歌事件美国早有预谋
  8. SVG 教程 (一)
  9. 在Shell中使用函数文件,引入文件
  10. 部署mysql MHA集群