spring-shiro.xml

<?xml version="1.0" encoding="UTF-8"?> <!--自定义Realm--> <b...

2018-09-21 17:06:19

阅读数 122

评论数 0

24 在线会话管理

  有时候需要显示当前在线人数、当前在线用户,有时候可能需要强制某个用户下线等;此时就需要获取相应的在线用户并进行一些操作。   本章基于《第十六章 综合实例》代码构建。    会话控制器 Java代码   @RequiresPermissions("session...

2018-08-18 14:11:02

阅读数 69

评论数 0

23 多项目集中权限管理及分布式会话

  在做一些企业内部项目时或一些互联网后台时;可能会涉及到集中权限管理,统一进行多项目的权限管理;另外也需要统一的会话管理,即实现单点身份认证和授权控制。   学习本章之前,请务必先学习《第十章 会话管理》和《第十六章 综合实例》,本章代码都是基于这两章的代码基础上完成的。   本章示例...

2018-08-18 14:10:47

阅读数 150

评论数 0

22 集成验证码

  在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问,如暴力破解用户密码/恶意评论等。目前也有一些验证码比较简单,通过一些OCR工具就可以解析出来;另外还有一些验证码比较复杂(一般通过如扭曲、加线条/噪点等干扰)防止OCR工具识别;但是在中国就...

2018-08-18 14:10:40

阅读数 50

评论数 0

21 授予身份及切换身份

  在一些场景中,比如某个领导因为一些原因不能进行登录网站进行一些操作,他想把他网站上的工作委托给他的秘书,但是他不想把帐号/密码告诉他秘书,只是想把工作委托给他;此时和我们可以使用Shiro的RunAs功能,即允许一个用户假装为另一个用户(如果他们允许)的身份进行访问。   本章代码基于《...

2018-08-18 14:10:34

阅读数 44

评论数 0

20 无状态web应用集成

  在一些环境中,可能需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时带上相应的用户名进行登录。如一些REST风格的API,如果不使用OAuth2协议,就可以使用如REST+HMAC认证进行访问。HMAC(Hash-based Message ...

2018-08-18 14:10:26

阅读数 35

评论数 0

19 动态URL权限控制

  用过Spring Security的朋友应该比较熟悉对URL进行全局的权限控制,即访问URL时进行权限匹配;如果没有权限直接跳到相应的错误页面。Shiro也支持类似的机制,不过需要稍微改造下来满足实际需求。不过在Shiro中,更多的是通过AOP进行分散的权限控制,即方法级别的;而通过URL进...

2018-08-18 14:10:16

阅读数 93

评论数 0

18 并发登入人数控制

  在某些项目中可能会遇到如每个账户同时只能有一个人登录或几个人同时登录,如果同时有多人登录:要么不让后者登录;要么踢出前者登录(强制退出)。比如spring security就直接提供了相应的功能;Shiro的话没有提供默认实现,不过可以很容易的在Shiro中加入这个功能。   示例代码基...

2018-08-17 09:23:10

阅读数 56

评论数 0

17 OAuth2集成

  目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题,OAuth就是干这个的,OAuth2是OAuth协议的下一个版本,相比OAuth1,OAuth2整个授权流程更简单安全了,但不兼容OAuth1,具体可以到OAuth2官网...

2018-08-17 09:23:04

阅读数 61

评论数 0

16 综合实例

  简单的实体关系图   简单数据字典 用户(sys_user) 名称 类型 长度 描述 id bigint   编号 主键 ...

2018-08-17 09:22:49

阅读数 37

评论数 0

15 单点登入

  Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。此处我们使用Jasig CAS v4.0.0-RC3版本: https://github.com/Jasi...

2018-08-17 09:22:41

阅读数 43

评论数 0

14 ssl

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

2018-08-17 09:22:34

阅读数 24

评论数 0

13 rememberMe

  Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下: 1、首先在登录页面选中RememberMe然后登录成功;如果是浏览器登录,一般会把RememberMe的Cookie写到...

2018-08-17 09:22:27

阅读数 25

评论数 0

12 与spring集成

  Shiro的组件都是JavaBean/POJO式的组件,所以非常容易使用Spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web应用的集成。   在示例之前,需要导入shiro-spring及spring-context依赖,具体请参...

2018-08-17 09:22:20

阅读数 26

评论数 0

11 缓存机制

   Shiro提供了类似于Spring的Cache抽象,即Shiro本身不实现Cache,但是对Cache进行了又抽象,方便更换不同的底层Cache实现。对于Cache的一些概念可以参考我的《Spring Cache抽象详解》:http://jinnianshilongnian.iteye.c...

2018-08-17 09:22:14

阅读数 20

评论数 0

10 会话管理

Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会话管理可以...

2018-08-17 09:21:46

阅读数 30

评论数 0

9 JSP标签

Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮。     导入标签库 Java代码   <%@taglib prefix="shiro" uri="http:/...

2018-08-17 09:21:21

阅读数 32

评论数 0

拦截器机制

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

2018-08-16 19:38:41

阅读数 74

评论数 0

与web集成

Shiro提供了与Web集成的支持,其通过一个ShiroFilter入口来拦截需要安全控制的URL,然后进行相应的控制,ShiroFilter类似于如Strut2/SpringMVC这种web框架的前端控制器,其是安全控制的入口点,其负责读取配置(如ini配置文件),然后判断URL是否需要登录/权...

2018-08-16 19:37:38

阅读数 83

评论数 0

realm及相关对象

6.1 Realm 【2.5 Realm】及【3.5 Authorizer】部分都已经详细介绍过Realm了,接下来再来看一下一般真实环境下的Realm如何实现。    1、定义实体及关系 即用户-角色之间是多对多关系,角色-权限之间是多对多关系;且用户和权限之间通过角色建立关系;在系...

2018-08-16 19:36:43

阅读数 28

评论数 0

提示
确定要删除当前文章?
取消 删除