shiro

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

我的未来我决定 提交于 2019-11-28 17:33:40
特别注意: 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.已办任务 :查看自己办理过的任务以及流程信息、流程图、流程状态(作废 驳回 正常完成) 注:当办理完当前任务时

SpringBoot与Shiro整合权限管理实战

别说谁变了你拦得住时间么 提交于 2019-11-28 12:33:51
SpringBoot与Shiro整合权限管理实战 作者 : Stanley 罗昊 【 转载请注明出处和署名,谢谢! 】 *观看本文章需要有一定SpringBoot整合经验* Shiro框架简介 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序, 从最小的移动应用程序到最大的网络和企业应用程序。 分析Shiro的核心API 其实,Shiro的核心类有三个,分别是: 1.Subject:这个类呢,我们称之当前用户的主体,这个用户的主体包含了登陆、注销等等的一些方法,还有一些判断授权的一些方法; 2.SecurityManager:这个名称翻译过来就是,安全管理器的意思; 3.Realm:这个Realm呢其实我们Shiro去链接数据库的一个桥梁,因为,我们的程序需要去操作数据库去获取一些用户的信息,这些操作都需要Realm去完成; 这个三个API呢,都存在一些关系,比如.SecurityManager是需要去关联我们的Realm,Subject是需要把操作交给我们的SecurityManager,总结下来就是,Subject是需要去管理我们的SecurityManager,而SecurityManager去关联我们的Realm;

shiro权限控制配置

眉间皱痕 提交于 2019-11-28 12:27:21
shiro配置流程 web.xml中配置shiro的filter spring中配置shiro的过滤器工厂,指定对不同地址权限控制 , 传入安全管理器 配置安全管理器,传入realm,realm中定义具体授权和认证的流程 配置自定义凭证匹配器,指定token和info的匹配方式。 权限访问的配置 定义所有的权限的String集合 在自定义realm中重写doGetAuthoriaztionInfo(),创建所有权限的String集合, 创建SimpleAuthorizationInfo的对象,调用addStringPermission,添加权限的集合,返回该对象 控制访问指定资源时所需要的权限 a. 用代码校验。 //拿到当前的subject Subject subject = SecurityUtils.getSubject(); //检查是否具有指定权限 subject.checkPermission("部门管理"); b. 在过滤器工厂中配置拦截地址 /system/user/list.do = perms["部门管理"] /system/user/list.do = authc,roles[用户管理] c. 注解实现 @RequiresPermissions("用户管理") 使用shiro标签对视图渲染进行控制 <shiro:hasPermission name="用户管理

springboot整合shiro

£可爱£侵袭症+ 提交于 2019-11-28 11:36:27
请大家在看本文之前,先了解如下知识点: 1、Shiro 是什么?怎么用? 2、Cas 是什么?怎么用? 3、最好有Spring基础 可以先看看这两篇文章,按照这2篇文章的内容做一遍: Spring Boot Shiro 权限管理 CAS单点登录 首先看一下下面这张图: 第一个流程是单纯使用Shiro的流程。 第二个流程是单纯使用Cas的流程。 第三个图是Shiro集成Cas后的流程。 PS:流程图急急忙忙画的,整体上应该没有什么问题,具体细节问题还请大家留言指正。 如果你只是打算用到你的Spring Boot项目中,那么看着如下配置完成便可。 如果你想进一步了解其中的细节,还是建议大家单独配置Shiro、单独配置Cas,看看官方相关文档。 Shiro在1.2版本开始提供了对cas的集成,按下面添加依赖到pom.xml中: <!--Apache Shiro所需的jar包 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.2.4</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-ehcache<

springboot 整合apache shiro

て烟熏妆下的殇ゞ 提交于 2019-11-28 11:36:09
这几天因为项目需要,学习了下shiro,由此留下一些记录,也希望对初学shiro的朋友有帮助。 springboot 是这两年新兴起来的一个项目,它的出现是为了减少springmvc开发过程中需要引入各种的jar包,各种xml配置文件,它充分利用了JavaConfig的配置模式以及“约定优于配置”的理念,帮开发者配置大部分需要的东西,在 github上的springboot 项目里面,提供了很多列子, 而apache shiro 是一个轻量级的身份验证与授权框架,与spring security 相比较,简单易用,灵活性高,springboot本身是提供了对security的支持,毕竟是自家的东西。springboot暂时没有集成shiro,这得自己配。 网上找了一些资料,配置shiro的,有很多需要在web.xml、application.xml里面各种配置,然而springboot 并没有这些,而且springboot提倡无xml,使用javaconfig的配置方式,对这个不是很熟悉,但有人使用javaconfig的方式配置了shiro,参见这位csdn里面一位同学的博客 spring boot 集成shiro的配置 ,下载了demo,然后模仿着成功配置了下。但习惯了xml的配置方式,感觉javaconfig的方式并不是很直观,于是自己又把它换成了xml的方式

springboot整合shiro

丶灬走出姿态 提交于 2019-11-28 11:35:49
http://www.cnblogs.com/hlhdidi/p/6376457.html shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/ 它提供了很方便的权限认证和登录的功能.   而springboot作为一个开源框架,必然提供了和shiro整合的功能!接下来就用springboot结合springmvc,mybatis,整合shiro完成对于用户登录的判定和权限的验证.    1.准备数据库表结构   这里主要涉及到五张表:用户表,角色表(用户所拥有的角色),权限表(角色所涉及到的权限),用户-角色表(用户和角色是多对多的),角色-权限表(角色和权限是多对多的).表结构建立的sql语句如下: CREATE TABLE `module` ( `mid` int(11) NOT NULL AUTO_INCREMENT, `mname` varchar(255) DEFAULT NULL, PRIMARY KEY (`mid`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of module -- ---------------------------- INSERT INTO

springboot整合shiro应用

╄→гoц情女王★ 提交于 2019-11-28 11:35:34
1、Shiro是Apache下的一个开源项目,我们称之为Apache Shiro。它是一个很易用与Java项目的的安全框架,提供了认证、授权、加密、会话管理,与spring Security 一样都是做一个权限的安全框架,但是与Spring Security 相比,在于 Shiro 使用了比较简单易懂易于使用的授权方式。shiro属于轻量级框架,相对于security简单的多,也没有security那么复杂。所以我这里也是简单介绍一下shiro的使用。 2、非常简单;其基本功能点如下图所示: Authentication : 身份认证/登录,验证用户是不是拥有相应的身份; Authorization : 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager : 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography : 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support : Web支持,可以非常容易的集成到Web环境; Caching :缓存,比如用户登录后,其用户信息、拥有的角色

Shiro总结一会话,缓存管理,RememberMe

ぃ、小莉子 提交于 2019-11-28 11:16:16
Shiro 会话管理 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用 Subject.getSession() 即可获取会话;其等价于 Subject.getSession(true),即如果当前没有创建 Session 对象会创建一个;另外 Subject.getSession(false),如果当前没有创建 Session 则返回 null(不过默认情况下如果启用会话存储功能的话在创建 Subject 时会主动创建一个 Session)。 //获取当前会话的唯一标识。 session.getId(); //获取当前 Subject 的主机地址,该地址是通过 HostAuthenticationToken.getHost() 提供的。 session.getHost(); //获取 ,设置当前 Session 的过期时间;如果不设置默认是会话管理器的全局过期时间。 session.getTimeout(); session

shiro过滤器过滤属性含义

自闭症网瘾萝莉.ら 提交于 2019-11-28 11:15:50
securityManager :这个属性是必须的。 loginUrl :没有登录的用户请求需要登录的页面时自动跳转到登录页面,不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的”/login.jsp”页面。 successUrl :登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。 unauthorizedUrl :没有权限默认跳转的页面 其权限过滤器及配置释义 anon:例子/admins/**=anon 没有参数,表示可以匿名使用。 authc:例如/admins/user/**=authc表示需要认证(登录)才能使用,没有参数 roles(角色):例子/admins/user/**=roles[admin],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如admins/user/**=roles["admin,guest"],每个参数通过才算通过,相当于hasAllRoles()方法。 perms(权限):例子/admins/user/**=perms[user:add:*],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms["user:add:*,user:modify:*"]

Apach Shiro 密码加密过程(明文生成密码过程)详细解析

牧云@^-^@ 提交于 2019-11-28 10:45:43
前言: 最近再项目当中使用的ApachShiro安全框架,对于权限和服务器资源的保护都有一个很好的管理。前期主要参考的文章有 项目中设计密码的加盐处理以及二次加密问题,跟着断点 一步步揭开Apach Shiro 的神秘面纱 数据库: 这里我们就用最简单的admin + 123456(加密前的密码) 来做测试 ShiroConfig 配置 /** * 凭证匹配器 告诉 * @return */ @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); hashedCredentialsMatcher.setHashAlgorithmName("md5");// 散列算法:这里使用MD5算法; hashedCredentialsMatcher.setHashIterations(2);// 散列的次数,比如散列两次,相当于 md5(md5("")); return hashedCredentialsMatcher; } 这里我摘取了一段shiro 配置类当中的一个Bean注入对象,这里是告诉ApachShiro 我用的加密方式是MD5