Shiro是一个轻量级的权限控制框架,应用非常广泛。本文的重点是介绍Spring整合Shiro,并通过扩展使用Spring的EL表达式,使@RequiresRoles等支持动态的参数。对Shiro的介绍则不在本文的讨论范围之内,读者如果有对shiro不是很了解的,可以通过其官方网站了解相应的信息。另外该Filter需要加入最前面,以确保请求进来后最先通过shiro的权限控制。这里简单起见就直接使用基于文本定义的TextConfigurationRealm。如果需要在filterChainDefinitions定义中使用自定义的Filter,则可以通过ShiroFilterFactoryBean的filters指定自定义的Filter及其别名映射关系。因为默认情况下,ShiroFilterFactoryBean会把bean容器中的所有的Filter类型的bean以其id为别名注册到filters中。DefaultAdvisorAutoProxyCreator则是提供了为标注有Shiro提供的权限控制注解的Class创建代理对象,并在拦截到目标方法调用时应用AuthorizationAttributeSourceAdvisor的功能。

Spring 整合Shiro 并扩展使用EL表达式的实例详解

Spring 整合Shiro 并扩展使用EL表达式的实例详解

Spring 整合Shiro 并扩展使用EL表达式的实例详解