shiro

Shiro -- (五) 授权

女生的网名这么多〃 提交于 2020-02-28 21:21:20
授权   授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象: 主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。 主体   主体,即访问应用的用户,在 Shiro 中使用 Subject 代表该用户。用户只有授权后才允许访问相应的资源。 资源   在应用中用户可以访问的任何东西,比如访问 JSP 页面、查看/编辑某些数据、访问某个业务方法、打印文本等等都是资源。用户只要授权后才能访问。 权限   安全策略中的原子授权单位,通过权限我们可以表示在应用中用户有没有操作某个资源的权力。即权限表示在应用中用户能不能访问某个资源,如: 访问用户列表页面 查看/新增/修改/删除用户数据(即很多时候都是 CRUD(增查改删)式权限控制) 打印文档等等。。。   如上可以看出,权限代表了用户有没有操作某个资源的权利,即反映在某个资源上的操作允不允许,不反映谁去执行这个操作。所以后续还需要把权限赋予给用户,即定义哪个用户允许在某个资源上做什么操作(权限),Shiro 不会去做这件事情,而是由实现人员提供。   Shiro 支持粗粒度权限(如用户模块的所有权限)和细粒度权限(操作某个用户的权限,即实例级别的),后续部分介绍。 角色   角色代表了操作集合,可以理解为权限的集合

shiro之初探

耗尽温柔 提交于 2020-02-28 03:15:12
我是简单用来shiro以后,才来记录的,所以有一些想法,是看了shiro以后的总结。之前自己没有考虑,就直接去搜了权限类库,实在是可取。 权限验证,总括应该主要是分为两块。 1.验证用户信息 2.授权或者拒绝授权。 验证过程应该是这样的: 拿到登录信息,与已经保存的信息进行对比,对比通过,授权,对比不通过,不授权。 带着这个思路去看shiro代码,应该会简单一些 代码需要做的就是抽象去相关的概念和方法,而shiro就是为我们做了这一部分的代码的抽象和封装。 用编程的思想去看待现实中的场景,用面向对象的思想去写代码,去看代码。 来源: https://www.cnblogs.com/xiaotianblog/p/11207968.html

Shiro -- (四) 数据库支持

落花浮王杯 提交于 2020-02-27 17:26:22
主要就是JdbcRealm这个类 先看一下部分源码: 先建表:users(用户名 / 密码)、user_roles(用户 / 角色)、roles_permissions(角色 / 权限),并且往users里面插入一条数据---lc/123,其实也就用了一个users表登陆一下 创建ini文件: jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm dataSource=com.alibaba.druid.pool.DruidDataSource dataSource.driverClassName=com.mysql.jdbc.Driver dataSource.url=jdbc:mysql://localhost:3306/shiro dataSource.username=root dataSource.password=123456 jdbcRealm.dataSource=$dataSource securityManager.realms=$jdbcRealm 测试: @org.junit.Test public void t4(){ Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shiro-jdbc-realm.ini");

Shiro -- (三) 自定义Realm

£可爱£侵袭症+ 提交于 2020-02-27 15:56:10
简介:   Realm:域,Shiro 从从 Realm 获取安全数据(如用户、角色、权限),就是说 SecurityManager 要验证用户身份,那么它需要从 Realm 获取相应的用户进行比较以确定用户身份是否合法;也需要从 Realm 得到用户相应的角色 / 权限进行验证用户是否能进行操作;可以把 Realm 看成 DataSource,即安全数据源。如我们之前的 ini 配置方式将使用 org.apache.shiro.realm.text. IniRealm 。 Realm源码: public interface Realm { String getName(); //返回一个唯一的Realm名字 boolean supports(AuthenticationToken var1); //判断此Realm是否支持此Token AuthenticationInfo getAuthenticationInfo(AuthenticationToken var1) throws AuthenticationException; //根据Token获取认证信息 } 一般继承 AuthorizingRealm (授权)即可;其继承了 AuthenticatingRealm(即身份验证),而且也间接继承了 CachingRealm(带有缓存实现)。其中主要默认实现如下:   org

一个简单、快速、易读的Daffodil(达佛)基础管理平台

放肆的年华 提交于 2020-02-27 14:31:42
# Daffodil(达佛)基础管理平台 免费开源 一个简单、快速、易读的maven项目【[项目地址]( https://gitee.com/weijiang_admin )】 本人出生地水仙花之都【[漳州]( http://www.zhangzhou.gov.cn/ )】 Daffodil英文翻译意思是水仙花,本人也比较佛系且Daffodil音含 [ 达佛 ] 于是就叫“达佛基础管理平台” #### 介绍 本系统是基于SpringBoot的后台管理系统 易读易懂、界面简洁美观。 采用技术SpringBoot、Hibernate、Shiro、Flowable、thymeleaf等。 系统基础包括:用户管理、角色管理、部门管理、岗位管理、权限管理、菜单管理、字典管理、约束管理、参数配置、通知公告、日志管理、工作流管理、任务管理、流程演示、系统监控等模块... #### 软件架构 软件架构说明 - 核心框架:Spring Boot - 安全框架:Apache Shiro - 持久层框架:Hibernate - 工作流引擎:flowable - 模板引擎:Thymeleaf - 前端技术:bootstrap、layui、fontawesome等 #### 安装教程 以myeclipse开发工具为例: 1. 将项目检出并导入到你的工作空间。 2. 修改daffodil

Shiro -- (二) 身份验证基本流程

眉间皱痕 提交于 2020-02-27 14:20:31
简介: 在 shiro 中,用户需要提供 principals (身份)和 credentials(证明)给 shiro,从而应用能验证用户身份:   principals :身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个 principals,但只有一个 Primary principals,一般是用户名 / 密码 / 手机号。   credentials :证明 / 凭证,即只有主体知道的安全值,如密码 / 数字证书等。 最常见的 principals 和 credentials 组合就是用户名 / 密码了。接下来先进行一个基本的身份认证。 1.引入依赖: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId

shiro

二次信任 提交于 2020-02-27 14:17:04
shiro 依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.5.1</version> </dependency> <!--log4j及相关--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>2.0.0-alpha1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>2.0.0-alpha1</version> </dependency> log4j配置 log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j

精选开源SpringBoot项目:涵盖权限、搜索、秒杀、支付!

白昼怎懂夜的黑 提交于 2020-02-27 12:53:51
发文以来,分享了一些科技资讯,今天首次整理一些开源项目分享。既是对自己的学习督促,也是对有需要人的一种便利。 开源项目一: mall商城 star数:29.8k 项目地址:https://github.com/macrozheng/mall mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。 开源项目二: 微人事人力资源管理系统,SpringBoot+Vue开发 star数:14k 项目地址:https://github.com/lenve/vhr 开源项目三: Spring-boot-pay支付项目 star数:5.2k 项目地址:https://gitee.com/52itstyle/spring-boot-pay 开源项目四: Spring-boot-seckill分布式秒杀系统 star数:6.4k 项目地址:https://gitee.com/52itstyle/spring-boot-seckill 开源项目五: Spring-boot-mail邮件服务

Shiro 项目应用 Shiro系列-Shiro简介

╄→尐↘猪︶ㄣ 提交于 2020-02-27 04:06:54
简单介绍   对于Shiro来说不仅可以使用到JavaSE的开发中,还可以使用到JavaEE的开发中,Shiro可以完成的工作有。认证、授权、加密、会话管理、与Web的集成、缓存等等操作,shiro 应用实例 www.1b23.com,在SpringBoot使用前端框架的时候就整合了Shiro并且与Thymeleaf整合的也是非常好。   下面就是关于Shiro简单的功能架构图 Authentication 身份认证/登录,验证用户是不是拥有相应的身份。 Authorization 授权,权限验证,验证某个已经认证的用户是否有某个权限,也就是判断用户是否能做什么样的事情。例如验证用户是否是某个角色 Session Manager 会话管理,也就是用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中,会话可以是普通的JavaSE会话,也可以是Web会话。 Cryptography 加密,保护数据的安全性,例如密码加密存储到数据库,而不是通过明文存储 Web Support Web支持,可以很容易的集成到Web环境中。 Caching 缓存,例如用户登录之后,其用户信息、用户角色权限等都不需要每次都进行查询。这样可以提高效率 Concurrency Shiro 支持多线程应用并发验证,即在一个线程中开启另一个线程能把权限自动传播过去; Testing 提供测试支持 Run

小程序考试刷题开源

偶尔善良 提交于 2020-02-27 02:47:52
question-admin 刷题管理平台 gitee地址 JAVA接口服务 后端管理页面 小程序 本项目为前后端分离的Web应用后端程序,采用技术框架如下: springboot v2.1.2.RELEASE shiro jwt redis mybatis-plus v3.1.2 使用jwt采用token有效期内刷新机制更新Token。 项目已实现功能包括: 一、系统管理 用户登录 用户管理 角色管理 权限管理 菜单管理 登录日志 系统日志 二、运维管理 接口文档 用户反馈 三 、卷题管理 类别管理 科目管理 试卷管理 题目管理 轮播管理 开发环境&安装 一、开发环境 Mysql Jdk8+ Redis 二、初始化 db目录下的sql文件执行 文件系统使用的七牛存储(按照七牛官网文档去申请配置后有bucket,access-key,secret-key) 微信小程序(appid,secret) 三、启动 启动redis 启动mysql 运行AdminApplication类 喜欢的帮忙star,谢谢啦 来源: oschina 链接: https://my.oschina.net/zvc/blog/3171627