Spring Security借助一些列Servlet 过滤器 来提供 各种 安全性功能。

我们只需要在应用中的 web.xml 中配置 一个过滤器。

<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

DelegatingFilterProxy是一个特殊的 Servlet 过滤器,它本身所做的工作不多。

只是将工作 委托给 一个 javax.servlet.Filter 实现类,这个实现类作为一个 <bean>注册在 Spring 应用上下文中。

为了完成各自的工作内容,Spring Security 的 过滤器 必须注入 一些 其他的 Bean。

我们 无法对 注册 在 web.xml 中的  servlet 过滤器 进行 Bean 注入。

但是,通过使用 DelegatingFilterProxy , 我们可以在 Spring 中 配置 实际的 过滤器,从而 能够 充分利用 Spring 对 依赖注入的支持。

DelegatingFilterProxy 的  <filter-name> 值 是有意义的。

这个名字 用于 在 Spring 应用上下文中 查找 过滤器Bean。 Spring Security  将自动 创建 一个 ID 为 springSecurityFilterChain的 过滤器Bean,

这就是 我们在 web.xml 中  为 DelegatingFilterProxy 所设置的 name 值。

springSecurityFilterChain 本身 是另一个 特殊的  过滤器,他也被称为 FilterChainProxy。

它可以 链接 任意 一个 或 多个其它的 过滤器。

Spring Security  依赖一系列Servlet 过滤器来 提供 不同 的 安全性。但是,你几乎不需要知道这些细节,

因为 你 不需要显示 声明 springSecurityFilterChain 以及 它所 链接 在一起的 其他 过滤器。

当配置  <http> 元素时, Spring Security 将 会为我们自动 创建 这些Bean。


j_spring_security_check

j_username

j_password

/spring_security_login 路径 来访问 这个自动生成的 表单。

我们知道 Spring Security 将在 /Spitter/j_spring_security_check路径下处理登陆请求。

而且很显然,用户名 和 密码 需要在请求 中 使用 名为 j_username 和  j_password 的 输入域来进行 提交。

有了这些信息,我们就可以创建 自己的  登陆页面了。

代理Servlet过滤器的更多相关文章

  1. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  2. Servlet过滤器---简介

    过滤器的基本概念 Servlet过滤器从字面上的字意理解为经过一层次的过滤处理才达到使用的要求,而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件,在实际项目开发中Servlet过滤器 ...

  3. servlet过滤器Filter使用之DelegatingFilterProxy类

    正常情况下,我们需要添加一个过滤器,需要实现javax.servlet.Filter接口,再在web.xml中配置filter,如下: package cc.eabour.webapp.securit ...

  4. Spring Security:Servlet 过滤器(三)

    3)Servlet 过滤器 Spring Security 过滤器链是一个非常复杂且灵活的引擎.Spring Security 的 Servlet 支持基于 Servlet 过滤器,因此通常首先了解过 ...

  5. Servlet过滤器

    Servlet过滤器 [TOC] 1.过滤器的基本概念 1.1.基本概念 过滤器(Filter)属于tomcat服务器中的Servlet功能.在普通的javaweb服务中,jsp中的请求要被Servl ...

  6. Servlet过滤器Filter用法

    1 Servlet 过滤器方法 过滤器是一个实现了 javax.servlet.Filter 接口的 Java 类.javax.servlet.Filter 接口定义了三个方法:public void ...

  7. Servlet过滤器和监听器

    1,Servlet过滤器 <filter> <filter-name>charset</filter-name> <filter-class>org.g ...

  8. Servlet 过滤器

    一.过滤器介绍 在Servlet 2.3中定义了过滤器,它能够对Servlet容器的请求和响应进行检查和修改. Servlet过滤器能够在Servlet被调用之前检查Request对象,并修改Requ ...

  9. Servlet基础知识(四)——Servlet过滤器Filter

    一.什么是过滤器: 政府大楼的安检保安,它既能对进入政府大楼的人员进行检查,只允许检查符合要求的进入:同时他也负责对出大楼的人进行检查,看他带出的东西是否符合要求. 同样的,Servlet中的过滤器既 ...

随机推荐

  1. nodejs使用multiparty模块实现文件上传(另附express.bodyParser()的说明)

    最近师弟师妹们在用formidable做文件上传的时候会出现form.parse()不会触发的问题,在stackoverflow也没有找到答案,反而是几个答案推荐使用multiparty来代替,因为那 ...

  2. Rails 5 Test Prescriptions 第3章Test-Driven Rails

    本章,你将扩大你的模型测试,测试整个Rails栈的逻辑(从请求到回复,使用端到端测试). 使用Capybara来帮助写end-to-end 测试. 好的测试风格,包括端到端测试,大量目标明确的单元测试 ...

  3. 无法安装64位版本的office因为在您的pc

    无法安装64位版本的office因为在您的pcWindows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Installer\Products\00 ...

  4. BZOJ2986 Non-Squarefree Numbers

    神马的容斥原理实在是太神啦! 就是先二分一个数mid,看看有几个满足要求的数比他小. 查看的方法就是容斥原理... res = ((2 ^ 2)倍数个数 - ((2 ^ 2) * (3 ^ 2)倍数个 ...

  5. ES6介绍二 函数的增强

    ES6对于函数的使用新增了很多实用的API,JS的函数跟很多后台语言PHP,ASP.NET开始看齐: 1. 参数默认值: 以前我们为了给函数创建默认值,必须用一种冗杂的语句,而且有歧义的语句. //E ...

  6. jdk1.8的lambda语法(转)

    原文链接:http://www.jb51.net/article/115081.htm 代码: package com.jdk_8; import org.junit.Test; import jav ...

  7. 5.2离线使用xadmin包

    把xadmin包放到项目目录下,便于修改xadmin中的代码. 首先解压下载好的 xadmin-django2.zip 压缩包,拷贝子文件夹中的xadmin文件夹,到项目中新建extra_apps文件 ...

  8. 转:Content-disposition中Attachment和inline的区别

    转自:http://itindex.net/detail/52857-content-disposition-attachment?utm_source=tuicool&utm_medium= ...

  9. APP界面框架初窥---标签导航

    标签导航是十大界面框架设计里最常用的界面框架设计,也是被业界之内公认的一种普遍使用的页面框架设计.那么这种页面框架设计在作业方面对一个用户来说也是最常见的一种页面框架设计,比如说微博.微信.手机百度. ...

  10. nginx配置文件的性能优化

    1.nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数.worker_processes 8; 2.为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或 ...