有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 

注解:

新建一个类:
此时需要有admin的权限才可以执行下面的代码
public class ShiroService {

     @RequiresRoles({"admin"})
public void testMethod(){
System.out.println("test。。。。。");
}
}

把新建的类注入到spring容器中

 <bean  class="com.MrChengs.shiro.service.ShiroService"></bean>

ShiroHandler .java中加入

@Controller
@RequestMapping("/shiro")
public class ShiroHandler { @Autowired
private ShiroService shiroService; @RequestMapping("/testMethod")
public String testMethod(){
shiroService.testMethod();
return "redirect:/list.jsp"
;
}

....
}

list.jsp中加入测试超链接

  <a href="shiro/testMethod">Test Method</a>
 
此时我们登陆admin可以成功测试
 
当我们登陆user再点击测试的时候
UnauthorizedException

 初始化资源和权限

点击看源码可知

其配置的文件的内容最终被封装成一个map

新建一个初始化文件的类:
在map的方法体里面可以写我们需要在数据库中查询等代码
LinkedHashMap一定是这个
package com.MrChengs.shiro.Factory;
import java.util.LinkedHashMap;
public class FilterChainDefinitionMapperBUilder {
public LinkedHashMap<String, String> builderFilterChainDefinitionMap(){
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
map.put("/login.jsp", "anon");
map.put("/shiro/login", "anon");
map.put("/shiro/logout", "logout");
map.put("/user.jsp", "roles[user]");
map.put("/admin.jsp", "roles[admin]");
map.put("/**", "authc");
return
map;
}
}
在application中:
把注释的地方替换成红色标准的地方
  <!--
<property name="filterChainDefinitions">
<value>
/login.jsp = anon
/shiro/login = anon
/shiro/logout = logout
/user.jsp = roles[user]
/admin.jsp = roles[admin]
# everything else requires authentication:
/** = authc
</value>
</property>
-->
<property name="filterChainDefinitionMap" ref="filterIniDef"></property>
    <!-- 配置一个bean,实际上是一个map,实例通过工厂模式的方法 -->
<bean id="filterIniDef" factory-bean="filterChainDefinitionMapperBUilder"
factory-method="builderFilterChainDefinitionMap"></bean> <bean id="filterChainDefinitionMapperBUilder" class="com.MrChengs.shiro.Factory.FilterChainDefinitionMapperBUilder"></bean>

其余不变测试时没有任何问题的!!!

 会话管理

测试如下

shiro注解,初始化资源和权限,会话管理的更多相关文章

  1. Shiro从数据表中初始化资源和权限

    之前在测试的Web工程下,我们在applicationContext.xml中配置了shiroFilter资源拦截器信息: <bean id="shiroFilter" cl ...

  2. Shiro-从数据表中初始化资源和权限

    我们在 applicationContext中配置受保护的资源和权限的关系 <property name="filterChainDefinitions"> <v ...

  3. Shiro 整合SpringMVC 并且实现权限管理

    Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大 ...

  4. shiro会话管理

    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...

  5. 第十章 会话管理——《跟我学Shiro》

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2028675 目录贴:跟我学Shiro目录贴 Shiro提供了完整的企业级会话管理功能,不依赖于 ...

  6. Spring Cloud之路:(七)SpringBoot+Shiro实现登录认证和权限管理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sage_wang/article/details/79592269一.Shiro介绍1.Shiro是 ...

  7. Apache Shiro(五)-登录认证和权限管理ssm

    创建一个web动态项目 jar包 web.xml web.xml做了如下几件事情1. 指定spring的配置文件有两个 applicationContext.xml: 用于链接数据库的 applica ...

  8. SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能

    SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...

  9. Shiro集成SSM基于URL权限管理(一)

    学习了shiro之后,我们就可以说尝试把shiro加入ssm中,并做一套基于URL的权限管理. 其他的准备工作就不多说了,直接动手操作,看到效果再去理解. 表结构 执行如下,数据库名字可以自行修改,不 ...

随机推荐

  1. jquery 闭包

    jQuery 闭包结构 1 2 3 4 5 6 7 // 用一个函数域包起来,就是所谓的沙箱 // 在这里边 var 定义的变量,属于这个函数域内的局部变量,避免污染全局 // 把当前沙箱需要的外部变 ...

  2. Lucene学习之二:Lucene的总体架构

    本文转载自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623596.html Lucene总的来说是: 一个高效的,可扩展的,全 ...

  3. office2007安装时显示安装程序找不到 office.zh-cn\officeLR.cab怎么办

    根本原因是和VS2008有关解决方法如下:1. 找到vs2008安装程序(光盘,镜像文件,解压文件都一样),找到WCU文件夹在他里面找到WebDesignerCore文件夹,然后打开它找到WebDes ...

  4. HTML DOM status 属性

    <!DOCTYPE html><html> <head>HTML DOM status 属性</head><body><script ...

  5. [模拟回调] demo1模拟用字符串调用js函数 demo2模拟springmvc controller回调页面js函数

    demo1. 模拟用字符串调用js 函数 function dataQuery() { var strFun = "testCallBack"; var strParam = &q ...

  6. Java线程面试题 Top 50 (个人总结)(转)

    问答总结: 1. JDK1.5引入了哪些更高阶的并发工具  2. Java中CyclicBarrier 和 CountDownLatch有什么不同?  CountDownLatch和CyclicBar ...

  7. js中random的应用

    1.生成一个随机数 var r = Math.random(); console.info(r); 结果生成一个0-1的随机数(返回0和1之间的伪随机数,可能为0,但总是小于1,[0,1)) 2.生成 ...

  8. null id in com.rocky.** entry 错误处理

    1. 概述 使用hibernate往mysql数据库插入记录出错如下 10:37:57,364 ERROR [AssertionFailure] an assertion failure occure ...

  9. (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  10. new Date(年-月)时间是8点

    new Date('2018-02')获取的小时是8时解决new Date('2018-2')获取的小时是0时