项目环境:JDK7 + Maven3.04

0. 项目使用springmvc作为controller层

1. 引入spring-security

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.1.RELEASE</version>
</dependency>

2. 在spring context中添加namespace

<beans 
...
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="...
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.0.xsd">

3. 在spring context中添加filter chain配置

<bean id='swaggerFilter' class="com.hiv.web.swagger.SwaggerFilter">
<constructor-arg value='${hiv.swagger.enabled}' />
</bean>
<bean id='versionFilter' class="com.hiv.web.spring.VersionFilter">
<constructor-arg value='${project.build.version}' />
</bean>
<bean id="myfilterChainProxy" class="org.springframework.security.web.FilterChainProxy">
<security:filter-chain-map request-matcher="ant">
<security:filter-chain pattern="/js/*.js" filters="versionFilter" />
<security:filter-chain pattern="/api-docs" filters="swaggerFilter" />
<security:filter-chain pattern="/api-docs/**" filters="swaggerFilter" />
<security:filter-chain pattern="/swagger/**" filters="swaggerFilter" />
</security:filter-chain-map>
</bean>

4. 配置web.xml

<filter>
<filter-name>myfilterChainProxy</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>myfilterChainProxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

配置完成

参考资料:

http://www.springframework.org/schema/security/spring-security-4.0.xsd

http://docs.spring.io/autorepo/docs/spring-security/4.0.1.RELEASE/apidocs/org/springframework/security/web/FilterChainProxy.html

http://blog.csdn.net/imxiangzi/article/details/8812305

配置DelegatingFilterProxy使用Spring管理filter chain的更多相关文章

  1. 如何使用Spring管理Filter和Servlet

    在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建.如果要在filter或者servlet中使用sprin ...

  2. Spring 管理Filter和Servlet

    本文转载自:http://www.open-open.com/lib/view/open1417248512252.html 在使用spring容器的web应用中,业务对象间的依赖关系都可以用cont ...

  3. Spring管理Filter和Servlet(在servlet中注入spring容器中的bean)

    在使用spring容器的web应用中,业务对象间的依赖关系都可以用context.xml文件来配置,并且由spring容器来负责依赖对象 的创建.如果要在servlet中使用spring容器管理业务对 ...

  4. Spring配置与第一Spring HelloWorld

    林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 本文将主讲了Spring在Eclipse下的配置,并用Spring执行了第一个HelloWo ...

  5. 使用 Spring 容器管理 Filter

    当我们用Filter时,往往需要使用一些辅助的service,在普通的java中,只要声明(set,get方法)后在spring-application配置文件中配置就可以了,但是由于Filter与L ...

  6. Spring Security(2):过滤器链(filter chain)的介绍

    上一节中,主要讲了Spring Security认证和授权的核心组件及核心方法.但是,什么时候调用这些方法呢?答案就是Filter和AOP.Spring Security在我们进行用户认证以及授予权限 ...

  7. 通过案例掌握Spring 管理事务的步骤及配置

    案例描述  通过完成生成订单业务,掌握事务处理.  需要d_order表和d_item表  订单生成时的业务逻辑:向d_order插入1条数据的同时,向t_item中插入若干条数据  这就是一个独立的 ...

  8. ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存

    ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存 hibernate  : Hibernate是一个持久层框架,经常访问物理数据库 ...

  9. spring boot配置mybatis和事务管理

    spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...

随机推荐

  1. word 文档 一次性设置多张图片大小

    1.打开WORD文档,插入多张图片. 2.在word中按alt+f11组合键,进入VBA模式. 3.在左边的工程资源管理器中找到你的word文档,在其上右键/添加/模块 4.复制以下代码 Sub Ma ...

  2. nuget 服务器

    https://nuget.cnblogs.com/v3/index.json http://nuget.lzzy.net/api/v2 https://www.nuget.org/api/v2/ h ...

  3. 小谈 checkbox 的选中

    先做草稿,稍后完善, javascript for (var i = 0; i < jsonmsg.length; i++) { var ischecked = false; for (var ...

  4. Java集合常用类特点整理

    集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...

  5. Python notes

    1. range()函数的使用: a = range(n) # a = range(0,n) b = range(m,n) # b = range(m,n) alist = list(a) # ali ...

  6. CheckBox复选框全选以及获取值

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  7. js之事件冒泡和事件捕获

    (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div ...

  8. 关键字volatile

    一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存 ...

  9. Python之路 day3 全局变量、局部变量

    #!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 全局与局部变量 在子程序中定义的变量称为局部变 ...

  10. console

    你所不知道的 Console 2016-12-19 ZHANGXIANGLIANG JavaScript 转自 https://segmentfault.com/a/119000000672160 1 ...