谈谈 spring springMVC Shiro 整合流程

本文介绍了如何将Spring、SpringMVC与Apache Shiro框架进行整合,涉及Shiro的身份认证、授权、Session管理和加密等核心模块。通过配置web.xml、spring-servlet.xml和applicationContext.xml文件,以及添加必要的jar包,详细阐述了整合过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天谈谈如题所说的三个框架的整合流程,Spring,SpringMVC我想大家都很熟悉了,下面简单介绍一下Shiro,废话不多说,注意红色标注的部分,开讲,有什么不对请各位提出交流改正;


Shiro:Shiro是Apache下基于安全的一个框架,它可以帮助我们快速完成各个用户安全模块的搭建,使得系统更加安全稳定,Shiro主要重要组成模块如下:


Authentication:身份认证及登录模块

Authorization:授权模块

Session Manager:session管理模块

Cryptography:加密模块

Caching:缓存模块

Concurrency:多线程应用并发验证


下面开始介绍这三个框架的整合过程,亲自测试过,以下代码可以直接使用;


首先:spring和springMVC整合,在web.xml文件中配置如下代码:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>


<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- 配置springMVC -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


     然后在WEB-INF下面创建一个spring-servlet.xml文件,并配置如下代码:

<context:component-scan base-package="com.xingyun.test"></context:component-scan>

<!-- 加入springMVC的基本配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<mvc:annotation-driven></mvc:annotation-driven>
<mvc:default-servlet-handler/>


然后在项目根目录下建applicationContext.xml文件,配置代码如下:

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


    <!-- 配置緩存,以提高性能 ,可以选择不使用缓存-->
    <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
        <property name="cacheManagerConfigFile" value="classpath:ehcache.xml"/>
    </bean>


<!-- 配置实现了Realm接口的实现类,该出需要自己实现一个Realm接口的实现类ShrioRealm -->
    <bean id="jdbcRealm" class="com.xingyun.test.ShiroRealm"></bean>

<!-- 可以自动的调用 Spring IOC 容器声明的 bean 的生命周期方法 -->
    <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

    <!-- 启用 Shiro的注解功能 -->
    <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
          depends-on="lifecycleBeanPostProcessor"/>
    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
        <property name="securityManager" ref="securityManager"/>
    </bean>

    <!-- 配置Shiro的过滤器 用到的页面自己创建就可以了-->
    <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/login.jsp"/>
        <property name="successUrl" value="/index.jsp"/>
        <property name="unauthorizedUrl" value="/unauthorized.jsp"/>
        
        <!--  anon:匿名可以访问的页面 authc:认证的用户可以访问 -->
        <property name="filterChainDefinitions">
            <value>
                /login.jsp = anon
              /** = authc
            </value>
        </property>
    </bean>


接下来在项目根下加入ehcache.xml文件,该配置文件可以在

\shiro-root-1.3.2-source-release\shiro-root-1.3.2\samples\spring\src\main\resources 下面找到


至此基本整合完毕,在这之前需要导入一些必须的 jar 包,罗列如下:


至此,项目整合完毕,有问题可以随时交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值