shiro

Shiro学习笔记(1)-Shiro简介

时光总嘲笑我的痴心妄想 提交于 2019-11-30 13:16:55
什么是Shiro 简单地来说,Apache Shiro是Java的一个安全框架。 Shiro能实现的功能 (1)主要特性: Authentication: 验证用户身份,通常指登录。 Authorization :控制权限 Session Management :会话管理,用户登录成功后相关信息保存在会话中。可以是Web环境也可以是Java环境。 Cryptography:加密 (2)额外特性: Web Support:提供web应用支持,可以很方便集成到web环境 Caching: 缓存,来保存操作的高效性。 Concurrency: 支持多线程应用 Testing: 支持单元测试 Run As: 允许一个用户假装成另一个用户进行操作 Remember Me : 记住用户的身份信息 Shiro架构 从应用角度查看Shiro是如何工作的 从图片上可以看出来,Shiro有三个重要的概念: Subject: 主体,指的是当前和应用交互的用户,通常是人也可以指第三方服务或者后台进程等系列应用。所有的Subject都会绑定到SecurityManager,所以当我们和Subject进行交互时,其实真正作用的是SecurityManager。 SecurityManager:SecurityManager 是Shiro架构核心,它将所有的内部安全组件组合在一起。它充当一种引导者的角色

Shiro的实现流程

六月ゝ 毕业季﹏ 提交于 2019-11-30 12:27:40
获取当前的 Subject. 调用 SecurityUtils.getSubject(); 测试当前的用户是否已经被认证. 即是否已经登录. 调用 Subject 的 isAuthenticated() 若没有被认证, 则把用户名和密码封装为 UsernamePasswordToken 对象 1). 创建一个表单页面 2). 把请求提交到 SpringMVC 的 Handler 3). 获取用户名和密码. 执行登录: 调用 Subject 的 login(AuthenticationToken) 方法. 自定义 Realm 的方法, 从数据库中获取对应的记录, 返回给 Shiro. 1). 实际上需要继承 org.apache.shiro.realm.AuthenticatingRealm 类 2). 实现 doGetAuthenticationInfo(AuthenticationToken) 方法. 2). 实现 doGetAuthenticationInfo(AuthenticationToken) 方法. 由 shiro 完成对密码的比对. 1).密码的比对: 通过 AuthenticatingRealm 的 credentialsMatcher 属性来进行的密码的比对! 2). 如何把一个字符串加密为 MD5 替换当前 Realm 的 credentialsMatcher

Springboot vue.js html 跨域 集成代码生成器 shiro权限 前后分离

旧时模样 提交于 2019-11-30 09:47:30
特别注意: Springboot 工作流 前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ activiti6.0.0+ mybaits+maven+接口 前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 (特别注意,前端用的vue.js, 就是html页面引入vue.js形式, 用tomcat部署运行,更适合后台开发者) 工作流模块------------------------------------------------------------------------------------------- 1.模型管理 :web在线流程设计器、预览流程xml、导出xml、部署流程 2.流程管理 :导入导出流程资源文件、查看流程图、根据流程实例反射出流程模型、激活挂起 3.运行中流程:查看流程信息、当前任务节点、当前流程图、作废暂停流程、指派待办人 4.历史的流程:查看流程信息、流程用时、流程状态、查看任务发起人信息 5.待办任务 :查看本人个人任务以及本角色下的任务、办理、驳回、作废、指派一下代理人 6.已办任务 :查看自己办理过的任务以及流程信息、流程图、流程状态(作废 驳回 正常完成) 注:当办理完当前任务时

学习用到的博客

戏子无情 提交于 2019-11-30 09:39:38
关于shiro: https://www.cnblogs.com/learnhow/p/5694876.html and https://blog.csdn.net/qq383264679/article/details/47025799 关于springboot: https://www.cnblogs.com/toutou/archive/2019/02.html and https://www.cnblogs.com/ityouknow/category/914493.html 关于spring缓存: https://www.cnblogs.com/zsychanpin/p/7191021.html 关于springboot整合shiro+jwt : https://blog.csdn.net/qq_23250633/article/details/81063762 来源: https://www.cnblogs.com/Treesir/p/11570964.html

Apache Shiro权限管理框架

一曲冷凌霜 提交于 2019-11-30 07:04:01
Apache Shiro 和Web项目集成 web.xml配置 <!-- Apache Shiro Filter--> <filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>shiroFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Spring.xml配置 <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <!-- cas单点登录地址 http://casserve/

30分钟学会如何使用Shiro

余生长醉 提交于 2019-11-30 07:00:44
一、架构 要学习如何使用Shiro必须先从它的架构谈起,作为一款安全框架Shiro的设计相当精妙。Shiro的应用不依赖任何容器,它也可以在JavaSE下使用。但是最常用的环境还是JavaEE。下面以用户登录为例: (1)使用用户的登录信息创建令牌 UsernamePasswordToken token = new UsernamePasswordToken(username, password); token可以理解为用户令牌,登录的过程被抽象为Shiro验证令牌是否具有合法身份以及相关权限。 (2)执行登陆动作 SecurityUtils.setSecurityManager(securityManager); // 注入SecurityManager Subject subject = SecurityUtils.getSubject(); // 获取Subject单例对象 subject.login(token); // 登陆 Shiro的核心部分是SecurityManager,它负责安全认证与授权。Shiro本身已经实现了所有的细节,用户可以完全把它当做一个黑盒来使用。SecurityUtils对象,本质上就是一个工厂类似Spring中的ApplicationContext。Subject是初学者比较难于理解的对象,很多人以为它可以等同于User,其实不然

在 Web 项目中应用 Apache Shiro

天大地大妈咪最大 提交于 2019-11-30 06:37:56
用户权限模型 在揭开 Shiro 面纱之前,我们需要认知用户权限模型。本文所提到用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问多少受保护资源?”。为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。 用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性。实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息。 用户权限信息用 Role 与 Permission 表示,Role 与 Permission 之间构成多对多关系。Permission 可以理解为对一个资源的操作,Role 可以简单理解为 Permission 的集合。 用户信息与 Role 之间构成多对多关系。表示同一个用户可以拥有多个 Role,一个 Role 可以被多个用户所拥有。 图 1. 用户权限模型 回页首 认证与授权 Shiro 认证与授权处理过程 被 Shiro 保护的资源,才会经过认证与授权过程。使用 Shiro 对 URL 进行保护可以参见“与 Spring 集成”章节。 用户访问受 Shiro 保护的 URL;例如 http://host/security/action.do。 Shiro 首先检查用户是否已经通过认证

在 Web 项目中应用 Apache Shiro

只愿长相守 提交于 2019-11-30 06:37:06
用户权限模型 在揭开 Shiro 面纱之前,我们需要认知用户权限模型。本文所提到用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问多少受保护资源?”。为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。 用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性。实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息。 用户权限信息用 Role 与 Permission 表示,Role 与 Permission 之间构成多对多关系。Permission 可以理解为对一个资源的操作,Role 可以简单理解为 Permission 的集合。 用户信息与 Role 之间构成多对多关系。表示同一个用户可以拥有多个 Role,一个 Role 可以被多个用户所拥有。 图 1. 用户权限模型 认证与授权 Shiro 认证与授权处理过程 被 Shiro 保护的资源,才会经过认证与授权过程。使用 Shiro 对 URL 进行保护可以参见“与 Spring 集成”章节。 用户访问受 Shiro 保护的 URL;例如 http://host/security/action.do。 Shiro 首先检查用户是否已经通过认证

beetl 和 shrio 结合

流过昼夜 提交于 2019-11-30 06:26:18
shrio 提供有jsp 标签,供在jsp 里使用,如果想在beetl中使用,有俩种方法, 一是beetl支持集成jsp页面,所以你可以在在jsp里使用shrio标签 另外,beetl 使用自定义函数写了shiro tag功能,你可以像使用shiro标签那样使用shiro package com.ext; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.util.Map; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.bee.tl.core.GroupTemplate; /*gt.registerFunctionPackage("so",new ShiroExt ()); 你可以在模板里直接调用,譬如 @if(so.isGuest()) { */ public class ShiroExt { /** * The guest tag * * @return */ public boolean isGuest() { return getSubject() == null ||

Apache Shiro官方文档翻译系列

风格不统一 提交于 2019-11-30 06:25:47
Apache Shiro官方文档翻译系列 1. Apache Shiro 简介 2. Apache Shiro 术语 3. Apache Shiro 教程 4. Apache Shiro 架构 5. Apache Shiro 配置 6. Apache Shiro 认证 7. Apache Shiro 授权 8. Apache Shiro 权限 9. Apache Shiro 数据 欢迎各种姿势转载,知识重在传播! 来源: oschina 链接: https://my.oschina.net/u/877591/blog/752855