今天谈谈如题所说的三个框架的整合流程,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 包,罗列如下:
至此,项目整合完毕,有问题可以随时交流