集成方法

  shiro与web集成,主要是通过配置一个ShiroFilter拦截所有URL,其中ShiroFilter类似于SpringMVC的前端控制器,是所有请求入口点,负责根据配置(如ini配置文件),判断请求进入URL是否需要登录/权限等工作。


集成步骤

  1、导入相关jar包
  2、web.xml配置ShiroFilter以拦截请求
  3、配置shiro.int文件


shiro默认的过滤器

这些默认的拦截器会自动注册

过滤器简称  对应的java类 用法

anon,authcBasic,auchc,user是认证过滤器
perms,roles,ssl,rest,port是授权过滤器

authc 拦截器主要属性:
usernameParam ----> 表单提交的用户名参数名(username)
passwordParam ----> 表单提交的密码参数名(password)
rememberMeParam ----> 记住我(rmemberMe)
loginUrl ----> 登陆页面地址(/login.jsp)
successUrl ----> 登陆成功后默认的重定向地址
failureKeyAttribute ----> 登陆失败后错误信息存储key(shiroLoginFailure)

anon org.apache.shiro.web.filter.authc.AnonymousFilter 匿名拦截器,即不登陆就可以访问,一般用于静态资源过滤
authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter 需要认证
authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter  
roles org.apache.shiro.web.filter.authc.RolesAuthorizationFilter 角色授权拦截器
perms org.apache.shiro.web.filter.authc.PermissionsAuthorizationFilter 权限授权拦截器
user org.apache.shiro.web.filter.authc.UserFilter  
logout org.apache.shiro.web.filter.authc.LogoutFilter 退出拦截器
port org.apache.shiro.web.filter.authc.PortFilter  示例“/test=port[80]”,如果用户访问该页面是非80,将自动将请求端口改为80并重定向到该80端口
rest org.apache.shiro.web.filter.authc.HttpMethodPermissionFilter  
ssl org.apache.shiro.web.filter.authc.SslFilter  SSL拦截器,只有请求协议是https才能通过;否则自动跳转会https端口(443)


在ini配置文件中设置默认拦截器的属性

#如果身份验证没有通过,就跳转到loginUrl指定的页面
authc.loginUrl=/login
#如果用户没有角色,就跳转到unauthorizedUrl指定的页面
roles.unauthorizedUrl=/nopermission.jsp
#如果用户没有权限,就跳转到unauthorizedUrl指定的页面
perms.unauthorizedUrl=/nopermission.jsp #另外如果某个拦截器不想使用了可以直接通过如下配置直接禁用:
#perms.enabled=false 

在ini配置文件中设置访问权限

shiro web 集成的更多相关文章

  1. Shiro Web集成及拦截器机制(四)

    Shiro与 Web 集成 Shiro 提供了与 Web 集成的支持,其通过一个 ShiroFilter 入口来拦截需要安全控制的 URL,然后进行相应的控制,ShiroFilter 类似于如 Str ...

  2. Shiro学习笔记(5)——web集成

    Web集成 shiro配置文件shiroini 界面 webxml最关键 Servlet 測试 基于 Basic 的拦截器身份验证 Web集成 大多数情况.web项目都会集成spring.shiro在 ...

  3. Apache Shiro:【1】Shiro基础及Web集成

    Apache Shiro:[1]Shiro基础及Web集成 Apache Shiro是什么 Apache Shiro是一个强大且易于使用的Java安全框架,提供了认证.授权.加密.会话管理,与spri ...

  4. 2017.2.12 开涛shiro教程-第七章-与Web集成

    2017.2.9 开涛shiro教程-第七章-与Web集成(一) 原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. ...

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

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2024723 目录贴:跟我学Shiro目录贴 Shiro提供了与Web集成的支持,其通过一个Sh ...

  6. (九)shiro之web集成

    Url 匹配方式? 匹配一个字符 /admin? 可以匹配/admin1 或者/admin2 但是不能匹配/admin12 或者/admin* 匹配零个或者一个或者多个字符 /admin* 可以匹配 ...

  7. spring-boot+mybatisPlus+shiro的集成demo 我用了5天

    spring-boot + mybatis-plus + shiro 的集成demo我用了五天 关于shiro框架,我还是从飞机哪里听来的,就连小贱都知道,可我母鸡啊.简单百度了下,结论很好上手,比s ...

  8. 基于spring框架的apache shiro简单集成

    关于项目的安全保护,我一直想找一个简单配置就能达到目的的方法,自从接触了shiro,这个目标总算达成了,以下结合我使用shiro的经验,谈谈比较轻便地集成该功能. 首先我们先了解一下shiro是什么. ...

  9. Shiro - web应用

    先不谈Spring,首先试着用最简易的方式将Shiro集成到web应用. 即使用一些Servlet ContextListener.Filter.ini这些简单的配置完成与web应用的集成. web. ...

随机推荐

  1. MySQl资料链接

    原文:http://www.uml.org.cn/sjjm/sjjm-MySql.asp MySQl   MySQL高可用数据库内核深度优化的四重定制   MySQL数据表存储引擎类型及特性   My ...

  2. Python 日期和时间的几种输出格式

    在python中,我们可以使用 time 模块的 strftime 方法来格式化日期,例子如下: import time # 格式化成2016-03-20 11:45:39形式 print (time ...

  3. C# 对象哈希码

    FCL的设计者认为,如果能将任何对象的任何实例放到哈希集合中,能带来很多好处.但是这里说一点,还是会存在,哈希码类似的情况,这一点大型网站架构这本书中有介绍,最好做下MD5算法.为此,System.O ...

  4. Java学习之路(十):异常

    ---恢复内容开始--- 异常的概述和分类 Throwable类是Java语言中所有错误或者异常的超类(也就是说,Java中所有的报错都是继承与Throwable的),也只有当对象是此类或者此类的子类 ...

  5. Spring Boot 日志配置

    Spring Boot 日志配置 默认日志 Logback: 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很 ...

  6. Spring 小知识点

    一.引入配置文件的方式: 方式一: <context:property-placeholder location="classpath:jdbc.properties,classpat ...

  7. 【数组】Remove Duplicates from Sorted Array II

    题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...

  8. js函数技巧

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 机器学习--boosting家族之Adaboost算法

    最近在系统研究集成学习,到Adaboost算法这块,一直不能理解,直到看到一篇博文,才有种豁然开朗的感觉,真的讲得特别好,原文地址是(http://blog.csdn.net/guyuealian/a ...

  10. Apache POI导出excel

    public String exportXls(HttpServletRequest request, HttpServletResponse response) { try { HSSFWorkbo ...