日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

springSecurity源码分析-spring-security.xml文件配置

發(fā)布時間:2024/4/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springSecurity源码分析-spring-security.xml文件配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在spring-security.xml文件中配置

在配置文件中我們主要使用標簽來過多成配置

<!-- 配置不攔截的資源 --> <security:http pattern="/login.jsp" security="none"/> <security:http pattern="/failer.jsp" security="none"/> <security:http pattern="/css/**" security="none"/> <security:http pattern="/img/**" security="none"/> <security:http pattern="/plugins/**" security="none"/><security:http auto-config="true" use-expressions="false"><security:intercept-url pattern="/**" access="ROLE_USER,ROLE_ADMIN"/><security:form-loginlogin-page="/login.jsp"login-processing-url="/login.do"default-target-url="/index.jsp"authentication-failure-url="/failer.jsp"authentication-success-forward-url="/pages/main.jsp"/> </security:http>

http標簽是自定義標簽,我們可以在spring-security-config包中查看

http\://www.springframework.org/schema/security=org.springframework.security.config.SecurityName spaceHandler

繼續(xù)查看SecurityNamespaceHandler類,在其init方法

public void init() {loadParsers(); }

在loadParsers()方法中,指定由HttpSecurityBeanDefinitionParser進行解析

parsers.put(Elements.HTTP, new HttpSecurityBeanDefinitionParser());

在HttpSecurityBeanDefinitionParser完成具體解析的parse方法中

registerFilterChainProxyIfNecessary(pc, pc.extractSource(element));

這里就是注冊了名為springSecurityFilterChain的filterChainProxy類

接下我們在看一下注冊一系列Filter的地方createFilterChain,在這個方法中我們重點關(guān)注

AuthenticationConfigBuilder authBldr = new AuthenticationConfigBuilder(element,forceAutoConfig, pc, httpBldr.getSessionCreationPolicy(),httpBldr.getRequestCache(), authenticationManager,httpBldr.getSessionStrategy(), portMapper, portResolver,httpBldr.getCsrfLogoutHandler());

我們可以查看AuthenticationConfigBuilder創(chuàng)建代碼

public AuthenticationConfigBuilder(Element element, boolean forceAutoConfig,ParserContext pc, SessionCreationPolicy sessionPolicy,BeanReference requestCache, BeanReference authenticationManager,BeanReference sessionStrategy, BeanReference portMapper,BeanReference portResolver, BeanMetadataElement csrfLogoutHandler) {this.httpElt = element;this.pc = pc;this.requestCache = requestCache;autoConfig = forceAutoConfig| "true".equals(element.getAttribute(ATT_AUTO_CONFIG));this.allowSessionCreation = sessionPolicy != SessionCreationPolicy.NEVER&& sessionPolicy != SessionCreationPolicy.STATELESS;this.portMapper = portMapper;this.portResolver = portResolver;this.csrfLogoutHandler = csrfLogoutHandler;createAnonymousFilter();createRememberMeFilter(authenticationManager);createBasicFilter(authenticationManager);createFormLoginFilter(sessionStrategy, authenticationManager);createOpenIDLoginFilter(sessionStrategy, authenticationManager);createX509Filter(authenticationManager);createJeeFilter(authenticationManager);createLogoutFilter();createLoginPageFilterIfNeeded();createUserDetailsServiceFactory();createExceptionTranslationFilter(); }

?

總結(jié)

以上是生活随笔為你收集整理的springSecurity源码分析-spring-security.xml文件配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。