<bea
n
class="org.springframwork.aop.framework.autoproxy.DefaultAdvisorAutoProxyC
reator" depends-on="lifecycleBeanPostProcessor"/>
<bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSo
urceAdv isor">
<property
name="securityManager"
ref="securityManager"/>
动态创建 filterchaindefinitions
有时,在某些系统想通过读取数据库来定义
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
现在有一张表的描述实体类,以及数据访问:
@Enti
ty
@Table(name="TB_RESOURCE")
public
class
Resource
implements
Serializable
{
//主键
id
@Id
private
String
id;
//action
url
private
String
value;
//shiro
permission;
@Repo
sitory
public
class
ResourceDao
extends
BasicHibernateDao<Resource,
String>
{