Shiro之从数据库初始化角色权限信息

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  

        <!-- Shiro的核心安全接口,这个属性是必须的 -->  

        <property name="securityManager" ref="securityManager"></property>  

        <!-- 未认证,要跳转的url,非必须的属性,默认会自动寻找Web工程根目录下的"/login.jsp"页面 -->  

        <property name="loginUrl" value="/loginPage"></property>   

        <!-- 未授权,要跳转的url -->  

        <property name="unauthorizedUrl" value="/unauthorizedPage"></property>  

        <property name="filterChainDefinitions">

        <!-- anon:可以匿名访问  authc:必须认证登录后才能访问 -->  

            <value>  

                /loginPage=anon

                /doLogin=anon

                /doLogout=anon

                /page1 = roles[role1]

                /page2 = roles[role2]  

                /*=authc  

            </value>  

        </property>  

</bean>

以上filterChainDefinitions是纯手工配置,但实际应从数据库读取

新建一个FilterChainDefinitionMapBuilder

public class FilterChainDefinitionMapBuilder {

public LinkedHashMap<String, String> buildFilterChainDefinitionMap(){

LinkedHashMap<String, String> map = new LinkedHashMap<>();

//从数据库读取省略...

map.put("/loginPage", "anon");

map.put("/doLogin", "anon");

map.put("/doLogout", "anon");

map.put("/page1", "roles[role1]");

map.put("/page2", "roles[role2]");



map.put("/**", "authc");

return map;

}

}

xml修改如下

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  

        <!-- Shiro的核心安全接口,这个属性是必须的 -->  

        <property name="securityManager" ref="securityManager"></property>  

        <!-- 未认证,要跳转的url,非必须的属性,默认会自动寻找Web工程根目录下的"/login.jsp"页面 -->  

        <property name="loginUrl" value="/loginPage"></property>   

        <!-- 未授权,要跳转的url -->  

        <property name="unauthorizedUrl" value="/unauthorizedPage"></property>  



        <property name="filterChainDefinitionMap" ref="filterChainDefinitionMap"></property>

</bean>

<!-- 配置一个 bean, 该 bean 实际上是一个 Map. 通过实例工厂方法的方式 -->

<bean id="filterChainDefinitionMap" factory-bean="filterChainDefinitionMapBuilder" factory-method="buildFilterChainDefinitionMap"></bean>

<bean id="filterChainDefinitionMapBuilder" class="com.zns.shiro.FilterChainDefinitionMapBuilder"></bean>

转载于:https://www.cnblogs.com/zengnansheng/p/10389596.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值