Spring整合shiro

1、导入依赖

    <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-all</artifactId>
            <version>1.2.2</version>
    </dependency>

2、在web.xml配置代理过滤器(要放到struts2前面)

    <!-- spring提供整合shiro代理过滤器 -->
    <filter>
        <filter-name>shiroFliter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>shiroFliter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

3、配置一个Realm,这个类要继承org.apache.shiro.realm.AuthorizingRealm

    <bean id="bosRealm" class="cn.itcast.bos.web.realms.BosRealm"></bean>

4、配置安全管理器,把刚才的Realm注入到按软管理器

    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
            <property name="realm" ref="bosRealm"></property>
    </bean>

5、配置过滤工厂

<!-- apache提供过滤器工厂 -->
    <bean id="shiroFliter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <!-- 注入安全管理器 -->
        <property name="securityManager" ref="securityManager"></property>
        <!-- 配置登录页面,没有登录的时候自动跳转 -->
        <property name="loginUrl" value="/login.jsp"></property>
        <!-- 配置没有权限页面,没有权限的时候跳转 -->
        <property name="unauthorizedUrl" value="/unauthorized.jsp"></property>
        <!-- 配置拦截规则 -->
        <!-- /**: 所有请求 包括项目根目录下文件夹
             authc:认证过滤器;必须当前用户经过认证
             anon:匿名过滤器 不需要认证,不需要任何权限
             perms:权限过滤器 有对应的权限才可以访问
             roles:角色过滤器 有对应的角色才可以访问
         -->
        <property name="filterChainDefinitions">
            <value>
                /login.jsp = anon
                /validatecode.jsp* = anon
                /css/** = anon
                /images/** = anon
                /js/** = anon
                /userAction_login.action = anon
                /pages/base/standard.jsp = perms["standard_page"]
                /pages/base/courier.jsp = roles["admin"]
                /** = authc
            </value>
        </property>
    </bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值