[今日课程大纲]

Shiro实现授权

菜单授权

视图授权.

[知识点详解]

  • 解决点击浏览器回退按钮无法再次登录问题
  1. 在控制器中编写退出的方法

/**

* 发送ajax请求,执行退出

* @return

*/

@RequestMapping("ajaxLogout")

@ResponseBody

public int ajaxLogout(){

SecurityUtils.getSubject().logout();

System.out.println("执行退出");

return 0;

}

  1. 在登录页面jsp中发送ajax请求.
  • 如果自定义Filter实现URL权限验证
  1. 新建类继承

public class MyValidateCodeFilter extends AuthenticationFilter{

@Override

protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {

String validateCode = request.getParameter("validateCode");

Object obj = ((HttpServletRequest)request).getSession().getAttribute("validateCode");

System.out.println("obj:"+obj);

System.out.println("validateCode:"+validateCode);

if(!validateCode.equals(obj.toString())){

System.out.println("阻止了");

response.setContentType("application/json;charset=utf-8");

PrintWriter out = response.getWriter();

out.print("5");

return false;

}

return true;

}

}

  1. 在applicationContext-shiro.xml中配置自定义类的<bean>

<bean id="myValidateCodeFilter" class="com.bjsxt.manage.filter.MyValidateCodeFilter"></bean>

  1. 在ShiroFilterFactoryBean声明出哪个<bean>是shiro的filter

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">

<property name="securityManager" ref="securityManager"></property>

<property name="filters">

       <map>

          <entry key="validateCodeFilter" value-ref="myValidateCodeFilter"></entry>

       </map>

    </property>

<property name="loginUrl" value="/login"></property>

<property name="successUrl" value="/loginSuccess"></property>

<property name="filterChainDefinitions">

<value>

/login=validateCodeFilter,authc

/**=anon

</value>

</property>

</bean>

  • 授权
  1. 在Shiro中可以通过

    1. JAVA代码方式

      1. subject.hasRole()
      2. subject.isPermitted()
    2. JSP标签

1.2.1 导入标签库

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

1.2.2 使用

<shiro:hasRole name="管理员">

<a id="btn" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">注册新用户</a>

</shiro:hasRole>

  1. 注解

1.3.1 写在java代码方法上

@RequiresRoles("")

  1. 都会触发自定义Realm的doGetAuthorizationInfo,方法中需要给返回值中添加用户所具有的角色或权限等.

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

// TODO Auto-generated method stub

//

//    SecurityUtils.getSubject().hasRole("");

//    SecurityUtils.getSubject().isPermitted("")

Users user = (Users) principals.getPrimaryPrincipal();

SimpleAuthorizationInfo info= new SimpleAuthorizationInfo();

List<Role> list = user.getRoles();

for (Role role : list) {

System.out.println(role.getName());

info.addRole(role.getName());

}

//    info.addStringPermission(permission);

return info;

}

shiro的受权管理相关推荐

  1. shiro的会话管理:介绍

    Shiro中的会话管理 在shiro里所有的用户的会话信息都会由Shiro来进行控制,shiro提供的会话可以用于JavaSE/JavaEE环境,不依赖于任何底层容器,可以独立使用,是完整的会话模块. ...

  2. spring boot整合shiro继承redis_spring-boot-plus集成Shiro+JWT权限管理

    SpringBoot+Shiro+JWT权限管理 Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以 ...

  3. 【Shiro】shiro的Session管理

    [Shiro]shiro的Session管理 1. Session管理介绍 2. JavaSE环境下 3. JavaEE环境下 4. Session监听 5. Session检测 1. Session ...

  4. 《SpringBoot与Shiro整合-权限管理实战---从构建到模拟数据库登入》

    <SpringBoot与Shiro整合-权限管理实战> ---- 从构建到模拟数据库登入 ---- 点击下载源码 ---- 或者查看? 文章目录 <SpringBoot与Shiro整 ...

  5. 如何在 Spring Boot 中用 Shiro 实现权限管理

    本行 Chat 内容包括: 简单介绍 IntelliJ IDEA 的安装与注册 什么是 Spring Boot? 如何通过 IDEA 创建一个简单的 Spring Boot 项目 Apache Shi ...

  6. Shiro之权限管理的概念

    文章目录 前言:什么是shiro 一.什么是权限管理? 举例 二.权限管理的具体分类 1.身份认证 2.授权 总结 前言:什么是shiro Apache Shiro 是一个开源安全框架,提供身份验证. ...

  7. SpringBoot整合Shiro实现权限管理,经典实战教程

    String username = authenticationToken.getPrincipal().toString(); if(!username.equals("zhang&quo ...

  8. SpringBoot + Redis + Shiro 实现权限管理

    文章主要是针对shiro进行权限配置,只针对角色进行了权限过滤. GitHub:https://github.com/stevencxb/blog 数据库脚本 -- ----------------- ...

  9. 个人笔记 springboot整合shiro实现权限管理,前端使用vue 10155

    转载自github,地址https://github.com/Heeexy/SpringBoot-Shiro-Vue 目录结构: application.yml spring:datasource:u ...

  10. Shiro系统权限管理、及原理剖析

    1.简介 常用的Java EE安全框架有shiro.spring security.shiro被应用非常广泛,可以集成cas,搭建单点登录系统.spring security则被认为比较重,应用没有s ...

最新文章

  1. R语言Kolmogorov-Smirnov假设检验(正态性检验):检验数据的正态性
  2. selenium WebDriverException: Message: unknown error: DevToolsActivePort file doesnt exist
  3. C语言中,#include 和#include 的区别和注意点
  4. 计算机网络第六章:应用层
  5. 怎么随时获取Spring的上下文ApplicaitonContext,和Spring管理的Bean
  6. 信息传递服务器,AJAX的与服务器之间的信息传递原理(初学)
  7. Neo4j简单的样例
  8. Spring Boot定时任务-Quartz基本使用
  9. 每日一题(14)—— 交换a,b的值(不使用中间变量)
  10. Golang 连接池的几种实现案例
  11. java ee会话_Java EE会话技术Cookie和Session
  12. 参加了博客园北京俱乐部4月4日的活动-Nice
  13. css flex布局 padding,css三栏布局的三种实现方式(圣杯布局、双飞翼布局、Flex布局)...
  14. 如何制作双层PDF文档?其实只需简单一步!
  15. 自动升级WordPress失败解决方法
  16. kube-scheduler源码分析(三)之 scheduleOne
  17. 轻松查询多个中通速递发出物流中含有某个城市的单号
  18. 选股小技巧|如何选股
  19. 用mysql查询图书的信息_PHP+MySQL 利用mysql_fetch_row模糊查询图书信息
  20. 跨设备链路聚合 M-LAG

热门文章

  1. 如何查看电脑上曾记录的账号密码
  2. 电子邮件接受服务器的端口是,qq电子邮件服务器是什么?端口多少?安全类型是什么?路径前缀是什...
  3. 关于12306网站抢票的架构设计
  4. 马原复习知识点背诵-《马克思主义基本原理概论》
  5. 考研政治|马克思主义基本原理
  6. 阿里云网盘资源免费分享论坛正式上线
  7. 天然气阶梯是按年还是按月_燃气阶梯是一年一清吗 燃气阶梯的定义
  8. Fabric 1.0源代码分析(39) policy(背书策略)
  9. Python 逐行读取txt文件,批量下载文件
  10. 英文论文评审意见_艾德思:英文论文审稿意见模板