集成方法

  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配置文件中设置访问权限

最新文章

  1. 【转】SQL删除重复数据方法,留着备用
  2. django for monkey(chapter one)
  3. Mobiscroll 3.0 官方同步版
  4. 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作
  5. C# WinForm PropertyGrid用法
  6. Ubuntu 安装Redis体验
  7. 小米2/2S 手机由 Smartisan OS ROM 刷回 MIUI 教程
  8. EF 学习笔记
  9. sql优化-隐形转换危害
  10. 一句代码,更加优雅的调用KVO和通知
  11. Qt 智能指针学习(7种QT的特有指针)
  12. Unity3D NGUI,uGUI总结
  13. springMVC中的注解@RequestParam与@PathVariable的区别
  14. 使用Dockerfile来构建镜像
  15. 2016221 Java第二周学习补充
  16. 2.SlidingMenu(侧边栏效果)
  17. ef学习一
  18. 《Android进阶之光》--ButterKnife
  19. SQL Server 导出Excel有换行的解决方法
  20. Spring项目中执行Java脚本

热门文章

  1. linux centos7 防火墙及端口开放相关命令
  2. postman创建mocker Server
  3. Bloom分类法
  4. spring boot和mybatis集成分页插件
  5. UBUNTU下MONGODB出现PHP Fatal error: Uncaught exception 'MongoConnectionException' with message 和 Authentication failed on database 'admin' with username
  6. JVM调优一些相关内容
  7. kafka-2.11-0.11集群搭建
  8. WinForm 多语言处理
  9. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(五)——实现注册功能
  10. css3如何实现圆角边框