当前位置: 首页 > wzjs >正文

理财网站免费建设企业融资风险及其防范措施

理财网站免费建设,企业融资风险及其防范措施,阳江百姓网招聘,如何做自己的电影网站1. SpringSecurity核心源码分析 分析SpringSecurity的核心原理,那么我们从哪开始分析?以及我们要分析哪些内容? 系统启动的时候SpringSecurity做了哪些事情?第一次请求执行的流程是什么?SpringSecurity中的认证流程是怎么样的?1.1 系统启动 当我们的Web服务启动的时候,…

1. SpringSecurity核心源码分析

分析SpringSecurity的核心原理,那么我们从哪开始分析?以及我们要分析哪些内容?

  1. 系统启动的时候SpringSecurity做了哪些事情?
  2. 第一次请求执行的流程是什么?
  3. SpringSecurity中的认证流程是怎么样的?

1.1 系统启动

当我们的Web服务启动的时候,SpringSecurity做了哪些事情?当系统启动的时候,肯定会加载我们配置的web.xml文件

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app version="2.5" id="WebApp_ID" 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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>Archetype Created Web Application</display-name><!-- 初始化spring容器 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- post乱码过滤器 --><filter><filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 前端控制器 --><servlet><servlet-name>dispatcherServletb</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServletb</servlet-name><!-- 拦截所有请求jsp除外 --><url-pattern>/</url-pattern></servlet-mapping><!-- 配置过滤器链 springSecurityFilterChain 名称固定 --><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></web-app>

web.xml中配置的信息:

  1. Spring的初始化(会加载解析SpringSecurity的配置文件)
  2. SpringMVC的前端控制器初始化
  3. 加载DelegatingFilterProxy过滤器

Spring的初始化操作和SpringSecurity有关系的操作是,会加载介绍SpringSecurity的配置文件,将相关的数据添加到Spring容器中

image.png

SpringMVC的初始化和SpringSecurity其实是没有多大关系的

DelegatingFilterProxy过滤器:拦截所有的请求。而且这个过滤器本身是和SpringSecurity没有关系的!!!在之前介绍Shiro的时候,和Spring整合的时候我们也是使用的这个过滤器。 其实就是完成从IoC容器中获取DelegatingFilterProxy这个过滤器配置的 FileterName 的对象。

系统启动的时候会执行DelegatingFilterProxy的init方法

protected void initFilterBean() throws ServletException {synchronized(this.delegateMonitor) {// 如果委托对象为null 进入if (this.delegate == null) {// 如果targetBeanName==nullif (this.targetBeanName == null) {// targetBeanName = 'springSecurityFilterChain'this.targetBeanName = this.getFilterName();}
// 获取Spring的容器对象WebApplicationContext wac = this.findWebApplicationContext();if (wac != null) {// 初始化代理对象this.delegate = this.initDelegate(wac);}}}
}
protected Filter initDelegate(WebApplicationContext wac) throws ServletException {// springSecurityFilterChainString targetBeanName = this.getTargetBeanName();Assert.state(targetBeanName != null, "No target bean name set");// 从IoC容器中获取 springSecurityFilterChain的类型为Filter的对象Filter delegate = (Filter)wac.getBean(targetBeanName, Filter.class);if (this.isTargetFilterLifecycle()) {delegate.init(this.getFilterConfig());}return delegate;
}

image.png

init方法的作用是:从IoC容器中获取 FilterChainProxy的实例对象,并赋值给 DelegatingFilterProxy的delegate属性

1.2 第一次请求

客户发送请求会经过很多歌Web Filter拦截。

image.png

然后经过系统启动的分析,我们知道有一个我们定义的过滤器会拦截客户端的所有的请求。DelegatingFilterProxy

image.png

当用户请求进来的时候会被doFilter方法拦截

public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException {Filter delegateToUse = this.delegate;if (delegateToUse == null) {// 如果 delegateToUse 为空 那么完成init中的初始化操作synchronized(this.delegateMonitor) {delegateToUse = this.delegate;if (delegateToUse == null) {WebApplicationContext wac = this.findWebApplicationContext();

文章转载自:

http://07AhARAe.mjbkp.cn
http://X11dMavX.mjbkp.cn
http://w6AjQxgO.mjbkp.cn
http://jstOf9VZ.mjbkp.cn
http://DAYZWHDk.mjbkp.cn
http://1o3vCttw.mjbkp.cn
http://4dRvImDb.mjbkp.cn
http://A3OjoPqU.mjbkp.cn
http://lIVwI04O.mjbkp.cn
http://akm6Lbup.mjbkp.cn
http://Z9RStYnJ.mjbkp.cn
http://QTUJxxsK.mjbkp.cn
http://u1d0jCvB.mjbkp.cn
http://dDQf7hal.mjbkp.cn
http://jraRUn1O.mjbkp.cn
http://K9sTH5UN.mjbkp.cn
http://pXluHOpz.mjbkp.cn
http://XE2Ztddo.mjbkp.cn
http://qqqc58s5.mjbkp.cn
http://EzFCzMvL.mjbkp.cn
http://5J9oZUyZ.mjbkp.cn
http://VfXOTD9d.mjbkp.cn
http://GTJypN6u.mjbkp.cn
http://Ppi2zhe1.mjbkp.cn
http://Y8uCO3CI.mjbkp.cn
http://pBs5PqRj.mjbkp.cn
http://1HdHJwSW.mjbkp.cn
http://IsPtH3Ss.mjbkp.cn
http://nEwPnP12.mjbkp.cn
http://xlBvwPB7.mjbkp.cn
http://www.dtcms.com/wzjs/694409.html

相关文章:

  • 域名备案期间网站织梦dedecms绿色led照明公司企业网站模板 下载
  • 做一个商城网站社交信息共享网站开发外包
  • 二级网站怎么建设潍坊最早做网站的公司
  • 郑州网站建设 天强科技徐州市贾汪区建设局网站
  • 做资讯的网站社区推广方法有哪些
  • 江苏宏远建设集团网站北京网站建设培训
  • 下载吧网站整站源码龙华网站建设招商
  • 自己建网站服务器北海 网站制作工
  • 鄢陵网站建设中国科技公司100强
  • 上国外网站用什么dns张家港网站 设计制作
  • 珠海服务好的网站建设网站建站的基本步骤
  • 东莞建网站公司动徐州网站建设托管
  • 网站建设php诸葛企业网站建设公司
  • 网站图片太多怎么办网页代码编辑器有哪些软件
  • 新闻类网站开发多久大型网站开发流程
  • 网站内部seo顺德营销型网站一站式服务哪家好
  • 网站开发项目意义wordpress优化访问速度
  • 图片素材网站哪个最多公司开发网站
  • 河南省国基建设集团有限公司网站网上服务平台官网
  • 有哪些好的做h5的网站哪些网站容易被百度收录
  • 网站建设项目的实训报告友链网
  • 广告设计专业专科北京网站优化效果怎样
  • 建设基础化学网站的经验美丽寮步网站建设哪家好
  • 余姚网站建设设计服装公司 网站怎么做
  • 网站二维码链接怎么做的河间市网站建设公司
  • 网站主题模板下载简洁软件下载网站源码
  • 那个企业建网站好电影站的seo
  • html5结构的网站外贸高端网站定制
  • 深圳保障性住房网网站模版的优化
  • 如何做彩票网站的源码中山网站建设文化