shiro

shiro授权、注解式开发

好久不见. 提交于 2019-12-04 01:39:42
1、shiro 授权角色、权限 2、Shiro 的注解式开发 授权 ShiroUserMapper.xml <select id="getRolesByUserId" resultType="java.lang.String" parameterType="java.lang.Integer"> select r.roleid from t_shiro_user u,t_shiro_user_role ur,t_shiro_role r where u.userid = ur.userid and ur.roleid = r.roleid and u.userid = #{userid} </select> <select id="getPersByUserId" resultType="java.lang.String" parameterType="java.lang.Integer"> select p.permission from t_shiro_user u,t_shiro_user_role ur,t_shiro_role_permission rp,t_shiro_permission p where u.userid = ur.userid and ur.roleid = rp.roleid and rp.perid = p.perid and u.userid

shiro与spring的整合

会有一股神秘感。 提交于 2019-12-04 00:58:59
shiro与spring的整合 上一期,我们分享了如何在项目中使用shiro,了解了shiro的基本用法,但毕竟学习shiro的目的就是在项目中应用shiro,更准确地说是在web项目中应用shiro。那么,今天我们就来探讨一下shiro在spring web项目中的应用,这里依然参考官方sample部分的代码。好了,废话少说,直接开战。 spring xml方式 首先当然是创建spring项目,这里提供两种方案,一种是通过xml配置的spring项目,一种是纯注解的spring项目。先来说xml配置的方式,为什么要说xml的方式,因为在实际项目应用中,很多公司目前运行的方式还是xml配置的方式,为了我们更好的上手,更好地工作,我们先将xml的方式,当然也是因为目前我们公司采用的就是xml配置的方式。好了,让我们还是吧! 一、创建spring项目(xml方式) 关于spring项目的创建,这里不做过多说明,但我会放上自己的项目结构和各类配置。 pom.xml文件 先创建web项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi

[翻译-Shiro]-10分钟教会你Apache Shiro

流过昼夜 提交于 2019-12-03 23:42:36
最近在研究Apache Shiro准备将自认为比较重要的资料翻译成中文(明天去拔牙,呜呜)。时间允许的情况下会尽可能多的翻译 前言 欢迎来到Apache Shiro 10分钟之旅! 希望通过这个简单、快速的示例,可以让你对应用程序中使用Shiro有个深入的了解。嗯,10分钟你应该可以搞定它。 概述 Apache Shiro是什么? Apache Shiro一个功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使其能完成与其他安全框架同样的功能,这不也是我们一直努力想要得到的吗! 那么Apache Shiro能用来做什么呢? 很多,很多,嘿嘿。但是不在快速指南中做介绍,如果你想知道,那怎么办呢?去 这里 找寻你的答案吧。当然如果你还想知道我们什么时候,以及为什么要“创造”Shiro,去看看 Shrio的历史和使命 吧。 OK,现在让我们动手做点儿什么吧。 注:Shiro可以在任何环境下运行,小到最简单的命令行应用,大到大型的企业应用以及集群应用。但是我们准备在快速指南中使用最最简单的main方法的方式

shiro之web配置

ε祈祈猫儿з 提交于 2019-12-03 23:42:23
shiro之web配置 一、简介 通过配置来学习shiro,或者说通过配置来学习框架和软件,可以帮我们记忆这个框架或软件的核心功能有哪些,然后是通过什么模块来实现这些功能。本篇,我们学习shiro的web配置,同样包括了两个部分:权限(权限链)、模块(session) 二、权限配置 a)权限链(可以看作是serlet中的filter):在shiro的web模块中,都是通过 URI来实现权限验证。通过servlet的listener,在serlvet启动的时候,将我们在配置文件中设置的权限链(/index= authc , ssl )加载进SecurityManager中。客户通过URI(/index)来访问server端的资源(一般是接口)时,通过字符串匹配来选取权限( authc , ssl )。然后再一个一个验证,通过的就可以访问接口。 1.web.xml中 <!--用于加栽拦截链---> <listener> <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class></listener> <!-- 加入shiro的filter --> <filter> <filter-name>ShiroFilter</filter-name> <filter-class>org

access control, role and permission in grails

亡梦爱人 提交于 2019-12-03 21:02:32
I am working on a grails application for the first time and I now want to protect some pages to be viewed only by admins, and give some permissions to other users. I am using Apache Shiro plugin for grails. My sample code in the bootstrap looks like this class BootStrap { def init = { servletContext -> def adminRole if(ShiroRole.findByName("Admin".isEmpty())){ adminRole = new ShiroRole(name: "Administrator") adminRole.addToPermissions("*:*") adminRole.addToPermissions("admin") adminRole.save() // 'user' now has all administrator rights } if (ShiroUser.findAllByUsername("user").isEmpty()) { def

Apache Shiro JdbcRealm with JavaConfig and Spring Boot

偶尔善良 提交于 2019-12-03 20:33:37
问题 I'm trying to configure my Spring Boot application to use Apache Shiro as its security framework. I have everything working with a PropertiesRealm, now I'm trying to get it working with a JdbcRealm and Spring Boot's built-in H2 database. Here's my dependencies in my pom.xml: <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1

Please ensure that at least one realm can authenticate these tokens

落爺英雄遲暮 提交于 2019-12-03 17:35:35
So I have set up my shiro to have two Realms. A Username and Password Realm, using the standard UsernamePasswordToken. I have also set up a Custom Bearer Authentication Token that works off a token passed in from the user. If i just use my passwordValidatorRealm it works find, if no user is found throws unknown account, if password doesn’t match throws incorrect credentials, perfect. But as soon as i put in my tokenValidatorRealm it throws a org.apache.shiro.authc.AuthenticationException: Authentication token of type [class org.apache.shiro.authc.UsernamePasswordToken] could not be

权限管理

倾然丶 夕夏残阳落幕 提交于 2019-12-03 17:12:48
权限管理是系统的安全范畴,要求必须是合法的用户才可以访问系统(用户认证),且必须具有该资源的访问权限才可以访问该资源(授权)。 认证:对用户合法身份的校验,要求必须是合法的用户才可以访问系统。 授权:访问控制,必须具有该资源的访问权限才可以访问该资源。 权限模型:标准权限数据模型包括:用户、角色、权限(包括资源和权限)、用户角色关系、角色权限关系。 权限分配:通过UI界面方便给用户分配权限,对上边权限模型进行增、删、改、查操作。 权限控制: 基于角色的权限控制:根据角色判断是否有操作权限,因为角色的变化性较高,如果角色修改需要修改控制代码,系统可扩展性不强。 基于资源的权限控制:根据资源权限判断是否有操作权限,因为资源较为固定,如果角色修改或角色中权限修改不需要修改控制代码,使用此方法系统可维护性很强。建议使用。 权限管理的解决方案: n 对于粗颗粒权限管理,建议在系统架构层面去解决,写系统架构级别统一代码(基础代码)。 粗颗粒权限:比如对系统的url、菜单、jsp页面、页面上按钮、类方法进行权限管理,即对资源类型进行权限管理。 n 对于细颗粒权限管理: 粗颗粒权限:比如用户id为001的用户信息(资源实例)、类型为t01的商品信息(资源实例),对资源实例进行权限管理,理解对数据级别的权限管理。 细颗粒权限管理是系统的业务逻辑,业务逻辑代码不方便抽取统一代码

权限管理总结

北慕城南 提交于 2019-12-03 17:11:25
权限管理是系统的安全范畴,要求必须是合法的用户才可以访问系统(用户认证),且必须具有该资源的访问权限才可以访问该资源(授权)。 认证:对用户合法身份的校验,要求必须是合法的用户才可以访问系统。 授权:访问控制,必须具有该资源的访问权限才可以访问该资源。 权限模型:标准权限数据模型包括:用户、角色、权限(包括资源和权限)、用户角色关系、角色权限关系。 权限分配:通过UI界面方便给用户分配权限,对上边权限模型进行增、删、改、查操作。 权限控制: 基于角色的权限控制:根据角色判断是否有操作权限,因为角色的变化性较高,如果角色修改需要修改控制代码,系统可扩展性不强。 基于资源的权限控制:根据资源权限判断是否有操作权限,因为资源较为固定,如果角色修改或角色中权限修改不需要修改控制代码,使用此方法系统可维护性很强。建议使用。 权限管理的解决方案: n 对于粗颗粒权限管理,建议在系统架构层面去解决,写系统架构级别统一代码(基础代码)。 粗颗粒权限:比如对系统的url、菜单、jsp页面、页面上按钮、类方法进行权限管理,即对资源类型进行权限管理。 n 对于细颗粒权限管理: 粗颗粒权限:比如用户id为001的用户信息(资源实例)、类型为t01的商品信息(资源实例),对资源实例进行权限管理,理解对数据级别的权限管理。 细颗粒权限管理是系统的业务逻辑,业务逻辑代码不方便抽取统一代码

shiro(一)简介、理论知识

岁酱吖の 提交于 2019-12-03 16:33:35
开涛学shiro:http://jinnianshilongnian.iteye.com/blog/2018398 shiro+spirngmvc参考: https://www.cnblogs.com/sharpest/p/5865732.html http://peirenlei.iteye.com/blog/2086639 https://blog.csdn.net/crazylai1996/article/details/76222431 Authentication : 身份认证/登录,验证用户是不是拥有相应的身份; Authorization : 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限; Session Manager : 会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的; Cryptography : 加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support : Web支持,可以非常容易的集成到Web环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;