SpringMVC与Shiro的最简单整合(不包含权限管理)

本文介绍了如何在项目中进行SpringMVC与Shiro的最基础整合,包括Maven依赖的添加,主要涉及Spring与Shiro的配置设置。

1.Maven 引入依赖

配置Spirng Maven Dependency

配置Shiro Maven Dependency

<dependency>
   		<groupId>org.springframework</groupId>
   		<artifactId>spring-beans</artifactId>
   		<version>4.3.4.RELEASE</version>
    </dependency>
    <dependency>
   		<groupId>org.springframework</groupId>
   		<artifactId>spring-context</artifactId>
   		<version>4.3.4.RELEASE</version>
    </dependency>
    <dependency>
   		<groupId>org.springframework</groupId>
   		<artifactId>spring-core</artifactId>
   		<version>4.3.4.RELEASE</version>
    </dependency>
    <dependency>
   		<groupId>org.springframework</groupId>
   		<artifactId>spring-web</artifactId>
   		<version>4.3.4.RELEASE</version>
    </dependency>
    <dependency>
   		<groupId>org.springframework</groupId>
   		<artifactId>spring-webmvc</artifactId>
   		<version>4.3.4.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.shiro</groupId>
    	<artifactId>shiro-core</artifactId>
    	<version>1.3.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.shiro</groupId>
    	<artifactId>shiro-web</artifactId>
    	<version>1.3.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.shiro</groupId>
    	<artifactId>shiro-quartz</artifactId>
    	<version>1.3.2</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.shiro</groupId>
    	<artifactId>shiro-spring</artifactId>
    	<version>1.3.2</version>
    </dependency>


2.web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                      
	 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name>report</display-name>
	<context-param>
	 	<param-name>contextConfigLocation</param-name>
	 	<param-value>classpath:config/report/spring/spring-main.xml</param-value>
	 </context-param>
	 <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- UTF-8字符编码 -->
	 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
         <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>   
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
	<filter>  
	    <filter-name>shiroFilter</filter-name>  
	    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
	    <init-param>  
	    	<param-name>targetFilterLifecycle</param-name>  
	    	<param-value>true</param-value>  
	    </init-param>  
	</filter>  
	<filter-mapping>  
	        <filter-name>shiroFilter</filter-name>  
	        <url-pattern>/*</url-pattern>  
	</filter-mapping>
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/report/spring/spring-main.xml</param-value>
        </init-param>
       
    </servlet>
     <servlet-mapping>  
        <servlet-name>springmvc</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping> 
	
</web-app>
3.配置Spring配置文件 ——spring-main.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc" 
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc.xsd">
		
		<import resource="spring-shiro.xml"/>
		<mvc:annotation-driven />
		<!-- <mvc:resources location="/" mapping="/*/*/*.js"/>  
		<mvc:resources location="/" mapping="/*/*/*.css"/>   -->

		<mvc:default-servlet-handler/>
		<context:component-scan base-package="report.controller" />
		<context:component-scan base-package="report.shiro" />
		<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="prefix">
				<value>/WEB-INF/jsp/</value>
			</property>
			<property name="suffix">
				<value>.jsp</value>
			</property>
		</bean>
</beans>

4.配置Spring配置文件——spring-shiro.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
	   http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util.xsd">

	<bean id="shiroRealm" class="report.shiro.ShiroRealm">
        <property name="cachingEnabled" value="false"/>
	</bean>
	<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    	<property name="realm" ref="shiroRealm"/>
	</bean>
	<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">    
	    <property name="securityManager" ref="securityManager"/>  
	    <property name="loginUrl" value="/index/login"/>
	    <property name="successUrl" value="/home/index"/>  
	    <property name="unauthorizedUrl" value="/error/unauthorized"/>  
	    <property name="filterChainDefinitions">  
	        <value>  
	        	/index/login=anon
	             /** = authc
	        </value>  
	    </property>
	</bean>  
  	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
</beans>

5.控制器

package report.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping(value = "/index" )
public class HomeController {
	
	@RequestMapping(value = "/login")
	public String login() {
		return "/index/login";
	}
	
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值