一.Shiro授权 前提:需要认证通过才会有授权一说 1.授权过程 2.相关方法说明 ①subject.hasRole("role1"):判断是否有该角色 ②subject.hasRoles(List):分别判断该角色是否具有该List的每个内容 ③subject.hasAllRoles(Collection):返回boolean,要求参数中所有角色都需要具有 ④subject.isPermitted(""):判断是否有该权限 二.shiro.ini实现授权 1.新…
一.Shiro.ini文件 1.文件说明 ①ini(InitializationFile)初始文件:Window系统文件扩展名 ②Shiro使用时可以连接数据库,也可以不连接数据库(可以使用shiro.ini配置静态数据) 2.shiro文件组成部分 ①[main]:定义全局变量(内置securityManager对象) ②[users]定义用户名和密码 ③[roles]定义角色 ④[urls]定义哪些内置的urls生效,在web应用时使用 二.Shiro实现认证+Shiro.ini 1.认证过…
一.自定义Realm授权 前提:认证通过,查看Realm接口的继承关系结构图如下,要想通过自定义的Realm实现授权,只需继承AuthorizingRealm并重写方法即可 二.实现过程 1.新建module,添加如下pom依赖 <properties> <shiro.version>1.4.1</shiro.version> <loggingg.version>1.2</loggingg.version> </properties>…
一.概述 1.Shiro是什么? Apache Shiro是java 的一个安全框架,主要提供:认证.授权.加密.会话管理.与Web集成.缓存等功能,其不依赖于Spring即可使用: Spring Security(Oauth2)也是一个开源的权限框架,但其依赖于Spring运行,功能相对强大:而Shiro相对独立,不依赖于Spring,使用简单.灵活,所以我选择Shiro学习.哈哈~ 2.Shiro基本功能 ①Authentication(音标: [ɔːˌθentɪˈkeɪʃn] ) 身份认证…
写在前面 在上一篇文章<Shiro入门学习---使用自定义Realm完成认证|练气中期>当中,我们学会了使用自定义Realm实现shiro数据源的切换,我们可以切换成从关系数据库如MySQL中读取用户认证信息进行认证,亦可从非关系型数据库例如mongodb中读取用户认证信息进行认证.这是一个伟大的进度,这使得我们可以使用shiro来提升我们应用程序的安全度了, 那么,请大家思考一个问题,我们的应用程序真的安全了吗? 我把咱么上一篇文章当中的认证方法代码摘抄在下面给大家看看 /**认证 * @a…
基于ini或者关系数据库的,其实都是一样的,重要的是思想. # ============================================================================= # Tutorial INI configuration # # Usernames/passwords are based on the classic Mel Brooks' film "Spaceballs" :) # ======================…
写在前面 经过前面的学习,我们了解了shiro中的认证流程,并且学会了如何通过自定义Realm实现应用程序的用户认证.在这篇文章当中,我们将学习shiro中的授权流程. 授权概述 这里的授权指的是授予某一系统的某一用户访问受保护资源的权限,分为查询.修改.插入和删除几类.没有相关权限的用户将无法访问受保护资源,具有权限的用户只能在自己权限范围内操作受保护资源. 关键对象 主体(Subject) 即指定的某一用户,这里的用户可以是浏览器.APP和第三方应用程序等. 资源(Resource) 这里的…
一.散列算法概述 散列算法一般用于生成数据的摘要信息,是一种不可逆的算法,一般适合存储密码之类的数据,常见的散列算法如MD5.SHA等,一般进行散列时最好提供一个salt(“盐”),什么意思?举个栗子:加密密码“admin”,产生的散列值是21232f297a57a5a743894a0e4a801fc3,可以到一些md5解密网站(注:并不是真正解密,而是通过穷举法不断尝试)很容易通过散列值得到密码(admin),即如果直接对密码进行散列相对来说破解更容易,此时我们加入一些只有系统知道的干扰数据,…
一.概述 Shirom默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,而大部分情况下需要从系统数据库中读取用户信息,所以需要实现自定义Realm,Realm接口如下: 由此可以分析: ①CachingRealm:负责缓存处理 ②AuthenticationRealm:负责认证 ③AuthorizingRealm:负责授权 通常情况下,自定义的Realm继承AuthorizingRealm即可实现认证与授权 二.自定义Realm实现认证 1.新建module,添加…
写在前面 在上一篇文章<shiro认证流程源码分析--练气初期>当中,我们简单分析了一下shiro的认证流程.不难发现,如果我们需要使用其他数据源的信息完成认证操作,我们需要自定义Realm继承AuthorizingRealm类,并实现两个方法,分别对应授权和认证. 在这一篇文章当中,我们将介绍如何自定义Realm对象,完成认证信息数据源的切换. 自定义Reaml /**自定义Realm对象 * @author 赖柄沣 bingfengdev@aliyun.com * @version 1.0…
Shiro入门学习 一 .什么是Shiro? 看一下官网对于 what is Shiro ? 的解释 Apache Shiro (pronounced “shee-roh”, the Japanese word for ‘castle’) is a powerful and easy-to-use Java security framework (java安全管理框架)that performs authentication(认证), authorization (授权), cryptograp…
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权.加密.会话管理等功能,组成了一个通用的安全认证框架.它可以实现如下的功能:1.验证用户2.对用户执行访问控制,如:判断用户是否具有角色admin,判断用户是否拥有访问的资源权限.3.在任何环境下使用SessionA…
Shiro:学习笔记(2)——授权 Shiro的三种授权方式 编程式: Subject subject = SecurityUtils.getSubject(); if(subject.hasRole(“admin”)) { //有权限 } else { //无权限 } 注解式: @RequiresRoles("admin") public void hello() { //有权限 } 说明:没有权限将抛出相应的异常 JSP标签: <shiro:hasRole name=&quo…
入门: main方法直接执行:https://blog.csdn.net/a907691592/article/details/80559904 使用配置文件方式:https://blog.csdn.net/qq_26525215/article/details/78059488 源码理解: shiro的密码对比源码:https://blog.csdn.net/acmman/article/details/78446008 shiro+spring+springmvc+mybatis整合:htt…
近期在ITOO项目中研究使用Apache shiro集群中要解决的两个问题,一个是Session的共享问题,一个是授权信息的cache共享问题,官网上给的例子是Ehcache的实现,在配置说明上不算很详细,我在我们的项目中使用的是nosql(Redis)替代了ehcache做了session和cache的存储,接下来从shiro.Cas.redis.session等等基础知识.基本原理集成的角度来不断的深入分析,系列文章篇幅很长,很丰富,尽请期待! Apache shiro集群实现 (一) sh…
1.权限管理基础(认证和授权): 前言 本文主要讲解的知识点有以下: 权限管理的基础知识 模型 粗粒度和细粒度的概念 回顾URL拦截的实现 Shiro的介绍与简单入门 一.Shiro基础知识 在学习Shiro这个框架之前,首先我们要先了解Shiro需要的基础知识:权限管理 1.1什么是权限管理? 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 对权限的管理又分为两大类别: 用户认证 用户授权 1.1…
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源计算机视觉库 提供了很多函数,实现了很多计算机视觉算法,算法从最基本的滤波到高级的物体检测皆有涵盖 学习OpenCV所需要的基本知识 C/C++编程基础(编程能力) 了解算法原理(理论基础知识) 提升理论基础知识,所要了解的课程 数字图像处理 计算机视觉 模式识别 OpenCV知识一个算法库,我们并…
一.shiro入门 shiro.ini和log4j.properties要放在src下面,lib是和src同级别的,然后lib下面的jar包是必须的,lib下面的jar包需要add path,如果报错显示warn,warn内容是需要导入log4j之类的,那就可能是log4j.properties没放对地方. 然后在com.wth.cn下面放QuickStart类即可. 二:spring中应用shiro web.xml <?xml version="1.0" encoding=&q…
学习一个框架,查阅权威有效的资料能够事半功倍,本文收集笔者学习此框架中帮助很大的文档,希望对大家有所帮助. 对于文档类的,强烈建议看官方文档,而不是百度出来的经过网友加工或者搬运过来的资料!! shiro官网: http://shiro.apache.org/ 认证过程:https://shiro.apache.org/authentication.html#Authentication-%7B%7BAuthenticator%7D%7D 权限校验:http://shiro.apache.org…
1.0 我的操作系统是CentOS Linux release 7.6.1810  (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL https://www.cnblogs.c…
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 https://www.cnblogs.com/xiaofu007/p/10293529.html linux环境下安装MySQL传送门: [数据库]3.0 MySQL入门学习(四)——linux系统环境下MySQL安装 https://www.cnblogs.com/xiaofu007/p/1029…
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知识点,能有简单的.完整的.可快速运行的示例工程,并放到了Github上. 现梳理下清单,方便其他初学者以作参考: 一.SpringBoot学习笔记系列(2.x) springboot-elasticsearch SpringBoot+Spring Data ElasticSearch(5.6.10) 快速入…
原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5.0(21)之后,android.hardware.Camera被废弃(下面称为Camera1),还有一个android.graphics.Camera,这个android.graphics.Camera不是用来照相的,是用来处理图像的,可以做出3D的图像效果之类的,之前的Camera1则由andr…
Shiro——入门Demo 环境-  引入相关maven依赖, shiro-core,commons-logging 配置shiro配置文件:ini后缀 主方法测试: import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.mgt.DefaultSecurityManager; import org.apache.shir…
1.shiro(权限框架(认证,赋予角色,授权...)): readme.txt(运行机制): 1.从jsp的form中的action属性跳转到springmvc的Handler中(controller) 2.首先获取Subject,因为securityManager在applicationContext.xml中配置过了,所以可以直接 通过Subject currentUser = SecurityUtils.getSubject(); 3.开始认证 首先把账号和密码封装进UsernamePa…
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标签:v-cloak . 控制模块隐藏:v-if(值为false时不会渲染到dom上).v-show(相当于display属性的show和hide). 事件绑定:v-on.@语法,一般方法写在methods里面,需要操作dom的方法写在mounted里面,此时dom渲染完毕. 属性绑定:v-bind.…
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操作,前提是按照<Hadoop入门学习笔记---part2>中的已经在虚拟机中搭建好了Hadoop伪分布环境:并且确定现在linux操作系统中hadoop的几个进程已经完全启动了. 好了,废话不多说!实际的例子走起. 在myeclipse中新建一个java工程: 在项目工程中新建一个lib包用于存放…
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hadoop有了一个基础的了解.但是还是有一些理论性的东西需要重复理解,这样才能彻底的记住它们.个人认为重复是记忆之母.精简一下: NameNode:管理集群,并且记录DataNode文件信息: SecondaryNameNode:可以做冷备份,对一定范围内的数据作快照性备份: DataNode:存储数据:…
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要求程序员必须得指定好每个控件的位置和尺寸.当我们使用绝对位置时,我们得明白下面的几条限制: 当我们改变窗口大小时,控件的尺寸和位置不会改变. 我们的应用可能看起来和一般的应用有所不同. 改变前端页面可能会让我们的应用崩溃 如果我们决定要改变我们的布局时,我们必须要把所有控件的位置全部更新 下面这个例…
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/pyqt4/firstprograms/ 在这篇PyQt4的入门文档,我们讲学习一些基础功能. 简单的例子 这是一个显示一个小窗口的简单例子.我们可以对这个窗口做一些操作.我们可以改变它的大小,最大化它,或者最小化它.这需要大量的编码.有人已经写好了这些基础函数,因为它在绝大部分应用中重复出现,不需…