shiro能做什么,做j2ee时候要考虑什么

转载: http://jinnianshilongnian.iteye.com/blog/2018398,         感谢原作者

《跟我学Shiro》PDF完结版下载

博客分类:

跟我学Shiro

历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。   点击下载《跟我学Shiro》教程PDF版。学习交流使用,请勿用于其他任何商业用途。   Shiro目录 第一章  Shiro简介 第二章  身份验证 第三章  授权 第四章  INI配置 第五章  编码/加密 第六章  Realm及相关对象 第七章  与Web集成

第二十四章 在线会话管理——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   有时候需要显示当前在线人数、当前在线用户,有时候可能需要强制某个用户下线等;此时就需要获取相应的在线用户并进行一些操作。   本章基于《第十六章 综合实例》代码构建。    会话控制器 @RequiresPermissions("session:*") @Controller @RequestMapping("/sessions") public class SessionController { @Autowired private SessionDAO sessio ...

第二十三章 多项目集中权限管理及分布式会话——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在做一些企业内部项目时或一些互联网后台时;可能会涉及到集中权限管理,统一进行多项目的权限管理;另外也需要统一的会话管理,即实现单点身份认证和授权控制。   学习本章之前,请务必先学习《第十章 会话管理》和《第十六章 综合实例》,本章代码都是基于这两章的代码基础上完成的。   本章示例是同域名的场景下完成的,如果跨域请参考《第十五章 单点登录》和《第十七章 OAuth2集成》了解使用CAS或OAuth2实现跨域的身份验证和授权。另外比如客户端/服务器端的安全校验可参考《第二十章 无状态Web应用集成》。     部署架构  1 ...

第二十二章 集成验证码——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问,如暴力破解用户密码/恶意评论等。目前也有一 些验证码比较简单,通过一些OCR工具就可以解析出来;另外还有一些验证码比较复杂(一般通过如扭曲、加线条/噪点等干扰)防止OCR工具识别;但是在中 国就是人多,机器干不了的可以交给人来完成,所以在中国就有很多打码平台,人工识别验证码;因此即使比较复杂的如填字、算数等类型的验证码还是能识别的。 所以验证码也不是绝对可靠的,目前比较可靠还是手机验证码,但是对于用户来说相对于验证码还是比较麻烦的。   对于验证 ...

第二十一章 授予身份及切换身份——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他秘书,只是想 把工作委托给他;此时和我们可以使用Shiro的RunAs功能,即允许一个用户假装为另一个用户(如果他们允许)的身份进行访问。   本章代码基于《第十六章 综合实例》,请先了解相关数据模型及基本流程后再学习本章。   表及数据SQL 请运行shiro-example-chapter21/sql/ shiro-schema.sql 表结构 请运行shiro-example-chapter21/sq ...

第二十章 无状态Web应用集成——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在一些环境中,可能需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时带上相应的用户名进行登录。 如一些REST风格的API,如果不使用OAuth2协议,就可以使用如REST+HMAC认证进行访问。HMAC(Hash-based Message Authentication Code):基于散列的消息认证码,使用一个密钥和一个消息作为输入,生成它们的消息摘要。注意该密钥只有客户端和服务端知道,其他第三方是不知道的。访 问时使用该消息摘要进行传播,服务端然后对该消息摘要进行验证。如果只传递用户名+密码的消 ...

第十九章 动态URL权限控制——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   用过Spring Security的朋友应该比较熟悉对URL进行全局的权限控制,即访问URL时进行权限匹配;如果没有权限直接跳到相应的错误页面。Shiro也支持类似的机制,不过需要稍微改造下来满足实际需? ...

第十八章 并发登录人数控制——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在某些项目中可能会遇到如每个账户同时只能有一个人登录或几个人同时登录,如果同时有多人登录:要么不让后者登录;要么踢出前者登录(强制退出)。比如 spring security就直接提供了相应的功能;Shiro的话没有提供默认实现,不过可以很容易的在Shiro中加入这个功能。   示例代码基于《第十六章 综合实例》完成,通过Shiro Filter机制扩展KickoutSessionControlFilter完成。   首先来看看如何配置使用(spring-config-shiro.xml)    kickoutSessionContro ...

第十七章 OAuth2集成——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴     目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题,OAuth就是干这个 的,OAuth2是OAuth协议的下一个版本,相比OAuth1,OAuth2整个授权流程更简单安全了,但不兼容OAuth1,具体可以到 OAuth2官网http://oauth.net/2/查看,OAuth2协议规范可以参考http://tools.ietf.org/html /rfc6749。目前有好多参考实现供选择,可以到其官网查看下载。   本文使用Apache Oltu

第十六章 综合实例——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   简单的实体关系图   简单数据字典 用户(sys_user) 名称 类型 长度 描述 id

第十五章 单点登录——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。此处我们使用Jasig CAS v4.0.0-RC3版本: https://github.com/Jasig/cas/tree/v4.0.0-RC3   Jasig CAS单点登录系统分为服务器端和客户端,服务器端提供单点登录,多个客户端(子系统)将跳转到该服务器进行登录验证,大体流程如下: 1、访问客户端需要登录的页面http://localhost:90 ...

第十四章 SSL——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问。   首先生成数字证书,生成证书到D:\localhost.keystore 使用JDK的keytool命令,生成证书(包含证书/公钥/私钥)到D:\localhost.keystore: keytool -genkey -keystore "D:\localhost.keystore" -alias localhost -keyalg RSA

第十三章 RememberMe——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下: 1、首先在登录页面选中RememberMe然后登录成功;如果是浏览器登录,一般会把RememberMe的Cookie写到客户端并保存下来; 2、关闭浏览器再重新打开;会发现浏览器还是记住你的; 3、访问一般的网页服务器端还是知道你是谁,且能正常访问;   4、但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,此时还是需要再进行身份认证的,以确保当前用户还是你。 ...

第十二章 与Spring集成——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro的组件都是JavaBean/POJO式的组件,所以非常容易使用Spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web应用的集成。   在示例之前,需要导入shiro-spring及spring-context依赖,具体请参考pom.xml。 spring-beans.xml配置文件提供了基础组件如DataSource、DAO、Service组件的配置。   JavaSE应用   spring-shiro.xml提供了普通JavaSE独立应用的Spring配置: &l ...

第十一章 缓存机制——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴    Shiro提供了类似于Spring的Cache抽象,即Shiro本身不实现Cache,但是对Cache进行了又抽象,方便更换不同的底层Cache 实现。对于Cache的一些概念可以参考我的《Spring Cache抽象详解》:http://jinnianshilongnian.iteye.com/blog/2001040。   Shiro提供的Cache接口:  public interface Cache<K, V> { //根据Key获取缓存中的值 public V get(K key) throws C ...

第十章 会话管理——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会 话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会 话管理可以直接替换如Web容器的会话管理。   会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功 后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 ...

第九章 JSP标签——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮。     导入标签库 <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> 标签库定义在shiro-web.jar包下的META-INF/shiro.tld中定义。   guest标签  <shiro:guest> 欢迎游客访问,<a href="${pageContext.req ...

第八章 拦截器机制——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   8.1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展;所以如果对Filter不熟悉可以参考《Servlet3.1规范》 http://www.iteye.com/blogs/subjects/Servlet-3-1了解Filter的工作原理。首先下图是Shiro拦 截器? ...

第七章 与Web集成——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   Shiro提供了与Web集成的支持,其通过一个ShiroFilter入口来拦截需要安全控制的URL,然后进行相应的控制,ShiroFilter类 似于如Strut2/SpringMVC这种web框架的前端控制器,其是安全控制的入口点,其负责读取配置(如ini配置文件),然后判断URL是否需 要登录/权限等工作。   7.1 准备环境 1、创建webapp应用  此处我们使用了jetty-maven-plugin和tomcat7-maven-plugin插件;这样可以直接使用“mvn jetty:run”或“mvn tomcat7:run”直接 ...

第六章 Realm及相关对象——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴     6.1 Realm 【2.5 Realm】及【3.5 Authorizer】部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现。    1、定义实体及关系 即用户-角色之间是多对多关系,角色-权 ...

第五章 编码/加密——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   在涉及到密码存储问题上,应该加密/生成密码摘要存储,而不是存储明文密码。比如之前的600w csdn账号泄露对用户可能造成很大损失,因此应加密/生成不可逆的摘要方式存储。   5.1 编码/解码  Shiro提供了base64和16进制字符串编码/解码的API支持,方便一些编码解码操作。Shiro内部的一些数据的存储/表示都使用了base64和16进制字符串。 String str = "hello"; String base64Encoded = Base64.encodeToString(str.getBytes ...

第四章 INI配置——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即 可以理解为是一个IoC/DI容器,但是区别在于它从一个根对象securityManager开始。   4.1 根对象SecurityManager 从之前的Shiro架构图可以看出,Shiro是从根对象SecurityManager进行身份验证和授权的;也就是所有操作都是自它开始的,这个对象 是线程安全且真个应用只需要一个即可,因此Shiro提供了SecurityUtils让我们绑定它为全局的,方便后 ...

第三章 授权——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色( ...

第二章 身份验证——《跟我学Shiro》

博客分类:

跟我学Shiro

目录贴: 跟我学Shiro目录贴   身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals:身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals

第一章 Shiro简介——《跟我学Shiro》

博客分类:

跟我学shiro

目录贴: 跟我学Shiro目录贴   1.1  简介 Apache Shiro是Java的一个安全框架。目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠 结,能更简单的解决项目问题就好了。 本教程只介绍基本的Shiro使用,不会过多分析源码等,重在使用。   Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。S ...

[置顶] 跟我学Shiro目录贴

博客分类:

跟我学shiro

历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。   点击下载《跟我学Shiro》教程PDF版。学习交流使用,请勿用于其他任何商业用途。     Shiro目录 第一章  Shiro简介 第二章  身份验证 第三章  授权 第四章  INI配置 第五章  编码/加密 第六章  Realm及相关对象 第七章  与Web集成 第八章 拦截器机制 第九章 JSP标签 第十章 ...

Shiro目录

第一章  Shiro简介

第二章  身份验证

第三章  授权

第四章  INI配置

第五章  编码/加密

第六章  Realm及相关对象

第七章  与Web集成

第八章 拦截器机制

第九章 JSP标签

第十章  会话管理

第十一章  缓存机制

第十二章  与Spring集成

第十三章  RememberMe

第十四章  SSL

第十五章  单点登录

第十六章  综合实例

第十七章  OAuth2集成

第十八章 并发登录人数控制

第十九章 动态URL权限控制

第二十章 无状态Web应用集成

第二十一章 授予身份及切换身份

第二十二章 集成验证码

第二十三章 多项目集中权限管理及分布式会话

第二十四章 在线会话管理

时间: 2024-11-06 17:21:44

shiro能做什么,做j2ee时候要考虑什么的相关文章

指针做形参做局部变量以及内存分配

指针做形参做局部变量以及内存分配 一级指针做形参:首先一定要明白形参和你传递参数的那个实参是两个不同的变量,即使同名也还依然不同.指针传递的是一个变量或者一个值的地址,但是它本身还是采用值传递的方式.即你不能使它指向另外一块地址,但是你可以改变它指向的空间里存的值. 二级指针做形参:二级指针也是传值,但是他指向的地址是个一维指针,所以可以改变二维指针指向的地址空间里的内容也就是要申请空间的一维指针,不能改变二维指针本身的值,即不能让他指向一个新的一维指针.所以二维指针传递的是一个一维指针. 具体

如何起草你的第一篇科研论文——应该做&amp;避免做

如何起草你的第一篇科研论文——应该做&避免做 导语:1.本文是由Angel Borja博士所写.本文的原文链接在这里.感谢励德爱思唯尔科技的转载,和刘成林老师的转发.2.由于我第二次翻译,囿于知识水平有限,错误不当之处在所难免(不当之处以原文为准),还请大家不吝批评指正.3.如果大家发现有趣.有料.有用的文章,可给我留言,我会尽力翻译.谢谢大家. 正文: 按励德爱思唯尔科技的引言: 如何起草一篇科学论文?经验丰富的Angel Borja教授告诉你哪些是必要的而哪些是应该避免的!这是继Angel

如何做大做强企业中的ERP?

做过ERP的技术人员,很清楚知道ERP多复杂,多难搞. 做过ERP的销售人员,很清楚知道ERP门槛低,专业强. 曾经我有幸进入专做ERP的科技公司,在这家企业我从一个java工程师一步步走上该ERP架构师,我很难想像那一年我是怎么过来的,几乎没有星期天,为了业务,专业和开发每天工作在15小时以上. 到目前为止,我觉得该ERP是这个世界上最难搞成功的软件. ERP自有计算机以来,就有了ERP软件.像ERP软件的企业死了多少,又新来的多少,目前在世界上很少有几个成功的ERP. ERP技术的业务流,由

[软件人生]关于厦门大学谢灵教授论文一事——谈做人和做学问

1.    前言前些日子看到厦门大学教授举报校长一事,并没有想到此事会和我有什么关系,所以,也没有仔细去看到底是谁在做这个事情,是什么样的关联.直到2014年7月9日晚上,突然新浪微博有人提到了我5月份的一篇博文,提到了那次发现的抄袭事件,我才发现:任何旧闻都是新闻,任何新闻都可能是身边事.下面我们就这个事件一步一步展开讨论.2.    抄袭还是造假这个事件从开始到现在已经将近一个月了,期间,谢博士添加了我的微信,并做了一些对话.2.1    认同文中有著作权属于我的文字  以上两张截图是谢博士

js网站轮播图怎么做如何做?鸡哥教你简单制作效果炫酷

日了狗啦,刚刚鸡哥辛苦码了那么多字全丢了又要重新写,这是第二遍写了...今天鸡哥给小白写个不需要写js原生代码,只需要几个插件和一段通俗易懂得jquery代码就能搞定的轮播图,当然js原生代码写着也不算很繁琐,但是有些浪费时间,更何况很多人并不会用js直接写包括鸡哥,当年在学校还是研究过一段时间js的,当时还独自写了一个轮播图俘获了多少同班妹子的芳心,不过现在是基本废了,这东西要常写,不然忘的很快. 唉,本来还有妹子等着鸡哥呢,我这一大意文章丢了,重新写的话估计来不及了,先打个电话让妹子回家吧~

做别人做不到的事,你才能胜出

成功者之所以能取得成就,就在于他们能做别人不 愿做的事,做别人做不到的事.而失败者之所以处于劣势地位,也是由于他们没有挑战自己的勇气,走不出这看似简单的一步.天空并不高,向上伸手就能碰到:梦 想并不远,跨出步伐就能到达.高度的判断不在于事野,而在于心态:距离的判断不再于长度,而在于行动! 弱者坐失良机,强者创造时机.这就是敢于挑战自我的人的成功秘诀.敢于挑战自我的人用挑战与袭来的种种苦难周旋,不仅经受得起失败,同时也经受得起成功. 敢于挑战自己是成功者的一个重要素质.只有敢于挑战自己,你才会对自

奚恺元《别做傻瓜做的事》

别做傻瓜做的事1 别做傻瓜做的事2 正常人通常有心理账户误区,他们在心里对每一枚硬币并不是一视同仁的,而是视它们来自何方.去往何处而采取不同的态度. 如果你想少几分正常.多几分理性,你应当避免人为地设置心理账户而把不同用途或不同来源的钱割裂开来.你应当让财富在你的心理账户之间相互流通. 正常人通常在拿了一大笔收入的时候不愿意花钱,而在有一笔较小收人的时候反而容易把这笔钱花光. 由于心理账户的存在和效应,在两种等价的情况下正常入往往会做出自相矛盾的判断和决定,离理性有很大的差距:,如何才能改进和避

如何渡过中年危机(四条路:1.专注本业,做深做强 2.走架构 / 管理路线 3.转行到关联行业 4.创业开个公司,最考验综合能力。提前做好自己的职业规划)

阅读目录 一.程序员能靠技术渡过中年危机吗? 1.https://news.cnblogs.com/n/609217/ 返回顶部 程序员能靠技术渡过中年危机吗? https://news.cnblogs.com/n/609217/ 这是所有人都会经历的过程,有些已经平安渡过,有些还在惶恐不安.听听过来人的建议,走出自己的道路. 编者按 做 InfoQ 公众号这几年来,接触到的一线开发可谓数不胜数.这些人向我提过很多问题,技术问题有之,职业规划有之,撩妹脱单有之(虽然我都解答不了…),但出现频率最

【2019-11-16】做人和做企业是一个同心圆

10:00 “过去,全球化是大企业为主导,未来全球化是好企业主导,只有产品好.服务好.体验好.为他人好的企业才能走得更好.” ——马云 把外在问题转化为自己内在的问题后,会让自己主动起来.如果一切问题都是自己的问题,我们在解决问题的过程就是一个自我专注的过程,因为我们都全心全意地解决自己的问题.领导的问题就是自己晋升的机会,客户的问题就是自我扩展的机会,如果我懂得把别人的问题转化为自己的问题,我做事的态度和积极性会很不一样,既能专注自己的事业,又能为自己赢得利益,难道这不是最高效.最大化的双赢或

Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构

摘要: 以Spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,Activit为工作流引擎等. 框架简介--主要定位于互联网企业架构,已内置企业信息化系统的基础功能和高效的代码生成工具,包括:系统权限组件.数据权限组件.数据字典组件.核心工具 组件.视图操作组件.工作流组件组件.代码生成等.采用分层设计.双重验证.提交数据安全编码.密码加密.访问验证.数据权限验证.平台