shiro注解,初始化资源和权限,会话管理
有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容
注解:

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>
初始化资源和权限
点击看源码可知

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

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;
}
}
<!--
<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注解,初始化资源和权限,会话管理的更多相关文章
- Shiro从数据表中初始化资源和权限
之前在测试的Web工程下,我们在applicationContext.xml中配置了shiroFilter资源拦截器信息: <bean id="shiroFilter" cl ...
- Shiro-从数据表中初始化资源和权限
我们在 applicationContext中配置受保护的资源和权限的关系 <property name="filterChainDefinitions"> <v ...
- Shiro 整合SpringMVC 并且实现权限管理
Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大 ...
- shiro会话管理
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理.会话事件监听.会话存储/持久化.容器无关的集群. ...
- 第十章 会话管理——《跟我学Shiro》
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2028675 目录贴:跟我学Shiro目录贴 Shiro提供了完整的企业级会话管理功能,不依赖于 ...
- Spring Cloud之路:(七)SpringBoot+Shiro实现登录认证和权限管理
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sage_wang/article/details/79592269一.Shiro介绍1.Shiro是 ...
- Apache Shiro(五)-登录认证和权限管理ssm
创建一个web动态项目 jar包 web.xml web.xml做了如下几件事情1. 指定spring的配置文件有两个 applicationContext.xml: 用于链接数据库的 applica ...
- SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- Shiro集成SSM基于URL权限管理(一)
学习了shiro之后,我们就可以说尝试把shiro加入ssm中,并做一套基于URL的权限管理. 其他的准备工作就不多说了,直接动手操作,看到效果再去理解. 表结构 执行如下,数据库名字可以自行修改,不 ...
随机推荐
- sublime text 2编辑器中文问题
Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦.不过Sublime Package Control所以供的插件可以让Subli ...
- golang学习之select用法
早期的select函数是用来监控一系列的文件句柄,一旦其中一个文件句柄发生IO操作,该select调用就会被返回.golang在语言级别直接支持select,用于处理异步IO问题. select用法同 ...
- 一个Json、数组、Dictionary转换和数组对比的C#实例
最近做了一个程序,里面一段代码用到Json.数组.Dictionary转换和数组对比的一些知识,虽然在实际碰到类似问题时候有更好的方法,但这就当是一次基础知识的回顾,现在分享一下. 先介绍下要实现的业 ...
- ApplicationContextInitializer接口
一.简述 ApplicationContextInitializer是Spring框架原有的概念, 这个类的主要目的就是在 ConfigurableApplicationContext类型(或者子类型 ...
- 由ArrayList来深入理解Java中的fail-fast机制
1. fail-fast简介“快速失败”也就是fail-fast,它是Java集合的一种错误检测机制.某个线程在对collection进行迭代时,不允许其他线程对该collection进行结构上的修改 ...
- Eclipse使用快捷键总结
1.为方法添加注释:Alt + Shift + J
- CSS之after与before的content 和 attr 配合使用
content 和 attr 配合使用 如果你不想把content内容在CSS里写死,那你可以使用attr表达式来从页面元素中动态的获取内容: /* <div data-line="1 ...
- bootstrap-datepicker汉化
bootstrap-datepicker 是一个非常优秀的时间选择插件,默认是英文显示日期的,通过下面几个小修改让其支持默认中文 1.首先将 bootstrap-datepicker.js 另存为 u ...
- new Date(年-月)时间是8点
new Date('2018-02')获取的小时是8时解决new Date('2018-2')获取的小时是0时
- freebsd默认不是gcc构建
xunsearch在freebsd上死活装不上,用gcc编译通过. freebsd默认不是gcc编译工程,所以下个gcc ./configure CC=gcc48 编译. 觉得clang编译器不可能有 ...