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

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-m
 

核心技术:Maven,Springmvc mybatis shiro, Druid, Restful, 

Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 
1.     项目核心代码结构截图

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

   项目模块依赖

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

 

特别提醒:开发人员在开发的时候可以将自己的业务REST服务化或者Dubbo服务化

2.    项目依赖介绍

   2.1 后台管理系统、Rest服务系统、Scheculer定时调度系统依赖如下图:

 

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

       2.2 Dubbo独立服务项目依赖如下图:

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

3.  项目功能部分截图:

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

 

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

 

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

 

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

 

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

 

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

 

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

zookeeper、dubbo服务启动 

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

 

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

dubbo管控台 

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

 

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

 

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

 

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

 

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

 

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

 

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

 REST服务平台

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

 

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

 

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

 

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

转载于:https://my.oschina.net/grthrj/blog/779952