- 浏览: 3424365 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://www.360doc.com/content/14/0207/13/834950_350425926.shtml
有时,在某些系统想通过读取数据库来定义org.apache.shiro.spring.web.ShiroFilterFactoryBean的filterChainDefinitions。这样能够通过操作界面或者维护后台来管理系统的链接。
在shrio与spring集成好了以后,调试源码的高人可能已经注意到。项目启动时,shrio通过自己的org.apache.shiro.spring.web.ShiroFilterFactoryBean类的filterChainDefinitions(授权规则定义)属性转换为一个filterChainDefinitionMap,转换完成后交给ShiroFilterFactoryBean保管。ShiroFilterFactoryBean根据授权(AuthorizationInfo类)后的信息去判断哪些链接能访问哪些链接不能访问。filterChainDefinitionMap里面的键就是链接URL,值就是存在什么条件才能访问该链接,如perms、roles。filterChainDefinitionMap是一个Map,shiro扩展出一个Map的子类Ini.Section
现在有一张表的描述实体类,以及数据访问:
通过该类可以知道permission字段和value就是filterChainDefinitionMap的键/值,用spring FactoryBean接口的实现getObject()返回Section给filterChainDefinitionMap即可
定义好了chainDefinitionSectionMetaSource后修改applicationContext-shiro.xml文件
有时,在某些系统想通过读取数据库来定义org.apache.shiro.spring.web.ShiroFilterFactoryBean的filterChainDefinitions。这样能够通过操作界面或者维护后台来管理系统的链接。
在shrio与spring集成好了以后,调试源码的高人可能已经注意到。项目启动时,shrio通过自己的org.apache.shiro.spring.web.ShiroFilterFactoryBean类的filterChainDefinitions(授权规则定义)属性转换为一个filterChainDefinitionMap,转换完成后交给ShiroFilterFactoryBean保管。ShiroFilterFactoryBean根据授权(AuthorizationInfo类)后的信息去判断哪些链接能访问哪些链接不能访问。filterChainDefinitionMap里面的键就是链接URL,值就是存在什么条件才能访问该链接,如perms、roles。filterChainDefinitionMap是一个Map,shiro扩展出一个Map的子类Ini.Section
现在有一张表的描述实体类,以及数据访问:
@Entity @Table(name="TB_RESOURCE") public class Resource implements Serializable { //主键id @Id private String id; //action url private String value; //shiro permission; private String permission; //------------------Getter/Setter---------------------// } @Repository public class ResourceDao extends BasicHibernateDao<Resource, String> { }
通过该类可以知道permission字段和value就是filterChainDefinitionMap的键/值,用spring FactoryBean接口的实现getObject()返回Section给filterChainDefinitionMap即可
public class ChainDefinitionSectionMetaSource implements FactoryBean<Ini.Section>{ @Autowired private ResourceDao resourceDao; private String filterChainDefinitions; /** * 默认premission字符串 */ public static final String PREMISSION_STRING="perms[\"{0}\"]"; public Section getObject() throws BeansException { //获取所有Resource List list = resourceDao.getAll(); Ini ini = new Ini(); //加载默认的url ini.load(filterChainDefinitions); Ini.Section section = ini.getSection(Ini.DEFAULT_SECTION_NAME); //循环Resource的url,逐个添加到section中。section就是filterChainDefinitionMap, //里面的键就是链接URL,值就是存在什么条件才能访问该链接 for (Iterator it = list.iterator(); it.hasNext();) { Resource resource = it.next(); //如果不为空值添加到section中 if(StringUtils.isNotEmpty(resource.getValue()) && StringUtils.isNotEmpty(resource.getPermission())) { section.put(resource.getValue(), MessageFormat.format(PREMISSION_STRING,resource.getPermission())); } } return section; } /** * 通过filterChainDefinitions对默认的url过滤定义 * * @param filterChainDefinitions 默认的url过滤定义 */ public void setFilterChainDefinitions(String filterChainDefinitions) { this.filterChainDefinitions = filterChainDefinitions; } public Class> getObjectType() { return this.getClass(); } public boolean isSingleton() { return false; } }
定义好了chainDefinitionSectionMetaSource后修改applicationContext-shiro.xml文件
<bean id="chainDefinitionSectionMetaSource" class="org.exitsoft.showcase.vcsadmin.service.account.ChainDefinitionSectionMetaSource"> <property name="filterChainDefinitions"> <value> /login = authc /logout = logout /resource/** = anon </value> </property> </bean> <bean id="shiroSecurityFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login.jsp" /> <property name="successUrl" value="/index.jsp" /> <property name="unauthorizedUrl" value="/unauthorized.jsp" /> <!-- shiro连接约束配置,在这里使用自定义的动态获取资源类 --> <property name="filterChainDefinitionMap" ref="chainDefinitionSectionMetaSource" /> </bean> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> </bean> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
发表评论
-
JSTL 的 if else : 有 c:if 没有 else 的处理
2016-06-14 09:52 1337http://blog.csdn.net/xiyuan1999 ... -
基于spring,Atomikos,mybatis的分布式动态数据源JTA实现
2016-04-27 16:37 1078原文;http://www.blogjava.net/zuxi ... -
Servlet3.0新特性@WebServlet
2016-03-09 21:35 1609http://my.oschina.net/u/2416019 ... -
Spring+Mybatis+Velocity
2015-12-17 09:55 971原文: http://my.oschina.net/langh ... -
Freemarker页面语法
2015-12-03 10:29 1212Freemarker页面语法http://ji ... -
session过期后自动跳转到登陆页
2015-12-02 15:36 2631session过期后自动跳转到登陆页http://blog.c ... -
java代码中获取classpath路径
2015-11-27 11:40 2017http://blog.csdn.net/magi1201/a ... -
springmvc整合 sitemesh + freemarker+spring ioc
2015-11-24 19:30 2312使用freemarker.properties配置方式: ht ... -
Sitemesh 3 的使用及配置
2015-11-17 09:33 1048Sitemesh 3 的使用及配置 http://www.cn ... -
SpringMVC + Mybatis + Shiro 权限整合
2015-11-14 14:06 8747详细见参考文章: 基于Spring + Spring MVC ... -
Servlet中listener(监听器)和filter的总结
2015-04-10 23:14 1186http://my.oschina.net/ydsakyclg ... -
Spring Security 3.2.x 配置
2014-06-15 22:02 3918使用 Spring Security 保护 Web 应用的安全 ... -
SpringMVC + WebSocket + X
2014-06-12 10:45 4608官方文档:WebSocket Support http://d ... -
JSTL empty判断空值
2014-06-06 08:51 1340http://sphinx-yong.iteye.com/bl ... -
weblogic getServletContext().getRealPath("/")
2014-05-30 08:35 1850http://1185734295.iteye.com/blo ... -
上传文件到虚拟路径下
2014-05-16 23:44 1997http://guard.iteye.com/blog/206 ... -
在 Web 项目中应用 Apache Shiro
2014-03-17 15:00 1083http://www.ibm.com/developerwor ... -
SpringMVC3.2.x + Hibernate4.2.x + ecache + Spring Security 3.0.5
2014-01-20 09:24 1352这只是部分代码,一些代码可以参考:http://panyong ... -
SpringMVC3.2.x + Hibernate4.2.x + ecache
2013-05-18 12:50 2121附件是源码 pom.xml ---------------- ... -
ELResolver Escapes JSP EL Values To Prevent Cross-Site Scripting
2013-04-25 20:15 2315JspFactory.getDefaultFactory()返 ...
相关推荐
shiro-all-1.7.1.jar,shiro-aspectj-1.7.1.jar,shiro-cache-1.7.1.jar,shiro-config-core-1.7.1.jar,shiro-config-ogdl-1.7.1.jar,shiro-core-1.7.1.jar,shiro-crypto-cipher-1.7.1.jar,shiro-crypto-core-1.7.1.jar...
Maven坐标:org.apache.shiro:shiro-core:1.4.0; 标签:apache、shiro、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...
解决:升級1.7后附件...shiro-cas-1.7.0.jar shiro-core-1.7.0.jar shiro-ehcache-1.7.0.jar shiro-spring-1.7.0.jar shiro-web-1.7.0.jar CustomShiroFilterFactoryBean.java spring-context-shiro.xml 修改说明.txt
`shiro-1.7.1.zip`是一个包含Shiro框架不同组件的压缩包,主要用于web应用的安全控制。 1. **shiro-core-1.7.1.jar**: 这是Shiro的核心库,包含了基本的身份验证、授权和会话管理功能。它提供了一套API,开发者可以...
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
Maven坐标:org.apache.shiro:shiro-ehcache:1.4.0; 标签:apache、shiro、ehcache、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
Maven坐标:org.apache.shiro:shiro-event:1.4.0; 标签:apache、shiro、event、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中...
Maven坐标:org.apache.shiro:shiro-config-core:1.4.0; 标签:apache、shiro、config、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...
Apache Shiro是一个功能强大、灵活的开放式安全框架,干净利落地处理身份验证、授权、企业会话管理和加密。 Shiro可以帮助我们完成:认证、授权、加密、会话管理...【apache-shiro-1-2-x-reference,"waylau"翻译自官网】
在"shiro-root-1.2.3-source-release zipa包"中,包含了Shiro框架的核心源代码,允许开发者深入理解其内部工作原理,进行定制化开发或者调试。而相关的jar包则提供了运行时所需的依赖,使得我们可以直接在项目中使用...
对应Maven信息:groupId:org.apache.shiro,artifactId:shiro-core,version:1.3.2 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持...
shiro(shiro-all-1.8.0.jar)
Maven坐标:org.apache.shiro:shiro-cache:1.4.0; 标签:apache、shiro、cache、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
`shiro-redisson` 模块就是为了解决这个问题,将 Shiro 的缓存(Cache)和会话(Session)管理功能与 Redis 结合,实现了基于 Redis 的分布式解决方案。 1. **Redisson 库的介绍** Redisson 是一个全面的 Redis ...
"shiro-all jar"是Shiro的核心库,包含了所有Shiro的功能模块,方便开发者在一个JAR包中直接引用,避免了管理多个依赖的问题。 在`描述`中提到的各个模块是Shiro框架的主要组成部分: 1. **org.apache.shiro.aop**...
shiro shiro-core-1.7.1 jar shiro漏洞
Maven坐标:org.apache.shiro:shiro-crypto-core:1.4.0; 标签:apache、shiro、crypto、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...
Maven坐标:org.apache.shiro:shiro-crypto-cipher:1.4.0; 标签:apache、shiro、crypto、cipher、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
Maven坐标:org.apache.shiro:shiro-cas:1.2.3; 标签:apache、shiro、cas、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...
Maven坐标:org.apache.shiro:shiro-core:1.2.3; 标签:apache、shiro、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的...