1 <!-- 配置Shiro核心Filter 同名bean --> 2 <bean id="shiroFilter" 3 class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> 4 <!-- 安全管理器 --> 5 <property name="securityManager" ref="securityManager" /> 6 <!-- 未认证,跳转到哪个页面 --> 7 <property name="loginUrl" value="/login.html" /> 8 <!-- 登录页面页面 --> 9 <property name="successUrl" value="/index.html" /> 10 <!-- 认证后,没有权限跳转页面 --> 11 <property name="unauthorizedUrl" value="/unauthorized.html" /> 12 <!-- shiro URL控制过滤器规则 --> 13 <property name="filterChainDefinitions"> 14 <value> 15 /login.html* = anon 16 /user_login.action* = anon 17 /validatecode.jsp* = anon 18 /css/** = anon 19 /js/** = anon 20 /images/** = anon 21 /services/** = anon 22 /pages/base/courier.html* = perms[courier:list] 23 /pages/base/area.html* = roles[base] 24 /** = authc 25 </value> 26 </property> 27 </bean>
补充: 权限表达式 “:”代表子权限
举例:权限 courier 包含 courier:add、courier:list、courier:* ,如果用户具有父权限,操作
所有子权限功能
<!-- 安全管理器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm" ref="bosRealm" /> <property name="cacheManager" ref="shiroCacheManager" /> </bean>
四种主要方式 :
1、 在程序中 通过 Subject 编程方式进行权限控制
2、 配置 Filter 实现 URL 级别粗粒度权限控制
3、 配置代理,基于注解实现细粒度权限控制
4、 在页面中使用 shiro 自定义标签实现 页面显示权限控制
(1)
(2)