【Shiro】SpringMVC Mybatis Shiro RestTemplate的实现客户端无状态验证及访问控制

来源:互联网 发布:java调用其他类的函数 编辑:程序博客网 时间:2024/05/16 07:45

A.首先需要搭建SpringMVC+Shiro环境

a1.pom.xml配置
 spring:

<dependency>

 <groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>    <version>4.1.0.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-aop</artifactId>    <version>4.1.0.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-jdbc</artifactId>    <version>4.1.0.RELEASE</version></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context-support</artifactId>    <version>4.1.0.RELEASE</version></dependency><dependency>    <groupId>org.aspectj</groupId>    <artifactId>aspectjweaver</artifactId>    <version>1.8.7</version></dependency>

 Mybatis:

<dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>3.3.0</version></dependency><dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis-spring</artifactId>    <version>1.2.3</version></dependency><dependency>    <groupId>jdbc.driver</groupId>    <artifactId>oracle.n</artifactId>    <version>12.1.0.1.RELEASE</version></dependency><dependency>    <groupId>c3p0</groupId>    <artifactId>c3p0</artifactId>    <version>0.9.1.2</version></dependency>

JSON转换,Bean转换,加密,文件上传,日志记录等相关工具:

<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-core</artifactId>    <version>2.6.3</version></dependency><dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.6.3</version></dependency><dependency>    <groupId>net.sf.json-lib</groupId>    <artifactId>json-lib</artifactId>    <version>2.2.2-jdk15</version></dependency><dependency>    <groupId>net.sf.ezmorph</groupId>    <artifactId>ezmorph</artifactId>    <version>1.0.6</version></dependency><dependency>    <groupId>commons-codec</groupId>    <artifactId>commons-codec</artifactId>    <version>1.9</version></dependency><dependency>    <groupId>commons-beanutils</groupId>    <artifactId>commons-beanutils</artifactId>    <version>1.7.0</version></dependency><dependency>    <groupId>commons-collections</groupId>    <artifactId>commons-collections</artifactId>    <version>3.2</version></dependency><dependency>    <groupId>commons-lang</groupId>    <artifactId>commons-lang</artifactId>    <version>2.4</version></dependency><dependency>    <groupId>commons-fileupload</groupId>    <artifactId>commons-fileupload</artifactId>    <version>1.3.1</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version></dependency>

shiro:

<dependency>    <groupId>org.apache.shiro</groupId>    <artifactId>shiro-core</artifactId>    <version>1.2.2</version></dependency><dependency>    <groupId>org.apache.shiro</groupId>    <artifactId>shiro-web</artifactId>    <version>1.2.2</version></dependency><dependency>    <groupId>org.apache.shiro</groupId>    <artifactId>shiro-spring</artifactId>    <version>1.2.2</version></dependency>

a2.web.xml配置

 

<!-- 定义应用在Spring容器中的全局标志,避免冲突 --><context-param>    <param-name>webAppRootKey</param-name>    <param-value>reedws</param-value></context-param><!-- 配置SpringMVC入口 --><servlet>    <servlet-name>mvc</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:spring/spring-mvc.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>mvc</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping><!-- 加载log4j配置文件 --><context-param>    <param-name>log4jConfigLocation</param-name>    <param-value>classpath:log4j.properties</param-value></context-param><listener>    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener><!-- 配置Spring业务层,shiro相关配置就处于业务层 --><context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:spring/spring-mybatis.xml,classpath:spring/spring-service.xml,classpath:spring/spring-shiro.xml</param-value></context-param><listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 配置Spring自带的Web应用生命周期管理器 --><listener>    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><!-- 配置全局编码,和项目编码一致即可,此处用GBK,建议用UTF-8 --><filter>    <filter-name>encoding</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <init-param>        <param-name>encoding</param-name>        <param-value>GBK</param-value>    </init-param></filter><filter-mapping>    <filter-name>encoding</filter-name>    <url-pattern>/*</url-pattern></filter-mapping><!-- 和shiro整合,通过过滤器代理配置shiro的过滤器 --><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>
0 0