shiro快速入门

wangjianme 贡献于2017-01-08

作者 wangjian  创建于2014-10-29 12:08:00   修改者wangjian  修改于2016-05-18 13:23:10字数4474

文档摘要:Shiro是Apache的顶级项目、是开源的安全框架。用于控制身份认证、单点登录、及控制同一用户Session的数量。目前很多项目都采用Shiro框架。Shiro与Spring security相同都是安全框架,但相比与spring security具有配置简单的特点。比较容易上手。
关键词:

快速Shrio入门使用 作者:一叶知秋 本部分主要讲解Shiro快速入门。如果需要掌握Shiro的每一个细节,见本人后续发表的更多文章。 1:Shiro简介 Shiro是Apache的顶级项目、是开源的安全框架。用于控制身份认证、单点登录、及控制同一用户Session的数量。目前很多项目都采用Shiro框架。Shiro与Spring security相同都是安全框架,但相比与spring security具有配置简单的特点。比较容易上手。 2:快速ShiroWeb示例 1:目的 快速入门,省去那些无用的介绍。先通过最快速上手的示例了解Shiro的运行机制。 2:web示例快速入门 通过使用ini配置web快速入门,可以快速的掌握shiro的使用。免去学习大篇的理论知识。等待,学会配置和基本使用以后,再去学习理论知识。即先学会用,再去深入研究的学习思路。 步1:创建web项目 步2:导入shiro的包 以下是主要导入的包及依赖关系: 以下是最少需要的包: 说明: Beanutils是shiro在设置组件关系时使用的依赖包。 Shiro-Core是shiro的核心包 Shiro-Web是web开发必须要添加的包 Slf4j-api-1.6.4.jar是shiro-core依赖的包。 步3:可选配置 – log4j.jar 目前shiro依赖的是log4j1.x,所以,导入log4j1.x.jar 配置日志: 里面的代码如下:(也可以按要求自行配置) log4j.rootLogger=TRACE, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%c]: %m%n # ============================================================================= # 3rd Party Libraries # OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL # ============================================================================= # ehcache caching manager: log4j.logger.net.sf.ehcache=WARN # Most all Apache libs: log4j.logger.org.apache=WARN # Quartz Enterprise Scheular (java 'cron' utility) log4j.logger.org.quartz=WARN # ============================================================================= # Apache Shiro # ============================================================================= # Shiro security framework log4j.logger.org.apache.shiro=TRACE #log4j.logger.org.apache.shiro.realm.text.PropertiesRealm=INFO #log4j.logger.org.apache.shiro.cache.ehcache.EhCache=INFO #log4j.logger.org.apache.shiro.io=INFO #log4j.logger.org.apache.shiro.web.servlet=INFO log4j.logger.org.apache.shiro.util.ThreadContext=INFO 步4:在web.xml中添加监听器和过虑器 从Shiro1.2.4以后,开始,配置的是监听器+过虑器方式: org.apache.shiro.web.env.EnvironmentLoaderListener ShiroFilter org.apache.shiro.web.servlet.ShiroFilter ShiroFilter /* 步5:添加shiro.ini配置文件 此文件不能为空,以下为极为简单的配置,关于更多配置详解后续的文章中将会做出详解: [main] #提供对shiro的根配置信息,如SecurityManager,realms等 shiro.loginUrl=/login.jsp [users] #提供了对用户名/密码及角色的配置 #格式为 name=password,role1,role2,..roleN wangjian=1234,admin [roles] #提供了对角色及所拥有的权限的配置,可以使用ant形式的通配符 #格式为 role=permission1,permission2...permissionN admin=* [urls] #用于web,提供了对url拦截的相关配置 #格式为:url=拦截器[参数],拦截器[..],可以有多个拦截器,拦截器也也可以没有参数 #其中:anon为访客都可以访问,authc是用户认证以后才可以访问 /index.jsp=anon /login.jsp=authc /jsps/**=authc 步6:开发登录页面 /login.jsp代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here

登录

username:
password:
步7:运行测试 主页: 登录页面: 登录成功以后,就可以进入完全页面: 步8:使用shiro的标签 功能:显示用户名称。 控制细粒度的权限。 导入标签: <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%> 标签功能表: 标签 功能 .. 仅当用户还没有登录时显示用户身份为guest(访客) 示例: 你还没有登录,现在去 登录 …. 当用户登录成功以后,显示里面的内容: 登录成功,欢迎你: 显示当前用户的标识,即通过 AuthecticationInfo(Object principal,Object ccredentials,realms)中的 Principal。一般情况下:principal是一个字符串的用户标识。 如果在principal中设置的是User对象,则可以通过: 用于显示名称,即相当于: getPrincipal().getName(); 以下是登录成功显示的页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro" %> Insert title here

这是安全页面

登录成功,欢迎你:
你可以返回主页或退出:退出!

你已经登录成功 显示的效果如下: 小结: 1:Shiro项目需要包很少,如果仅开发java项目,只需要shiro-core.jar,如果开发web项目则需要再导入shiro-web.jar 2:shiro的运行需要在web.xml中添加一个过虑器和一个监听器,权限控制都是通过过虑器实现的如auth,anon,form都是shiro都是shiro的内置过虑器。 3:shiro.ini配置文件必不可少,里面可以提供Shiro的SecurityManager,realms等,其中可以通过指定realms修改登录的验证规则或是实现Realms实现数据库认证。 希望此文章能让你了解最基本的shiro,后续将会深入讲解shiro的应用及shiro与spring集成。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档