創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司秉承專業(yè)、誠信、服務、進取的價值觀,堅持以客戶為中心、客戶至上的服務理念,以“關注企業(yè)需求,實現(xiàn)企業(yè)價值”為導向,努力為企業(yè)提供全面優(yōu)質的互聯(lián)網應用服務。服務包括域名注冊、網絡空間、企業(yè)郵箱、網站建設、網站優(yōu)化、網絡營銷解決方案和咨詢服務,以幫助企業(yè)客戶應用互聯(lián)網。本篇文章和大家了解一下Spring Security內置Filter的介紹。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
1. 前言
上一文我們使用 Spring Security 實現(xiàn)了各種登錄聚合的場面。其中我們是通過在 UsernamePasswordAuthenticationFilter
之前一個自定義的過濾器實現(xiàn)的。我怎么知道自定義過濾器要加在 UsernamePasswordAuthenticationFilter
之前。我在這個系列開篇說了 Spring Security 權限控制的一個核心關鍵就是 過濾器鏈 ,這些過濾器如下圖進行過濾傳遞,甚至比這個更復雜!這只是一個最小單元。
Spring Security 內置了一些過濾器,他們各有各的本事。如果你掌握了這些過濾器,很多實際開發(fā)中的需求和問題都很容易解決。今天我們來見識一下這些內置的過濾器。
2. 內置過濾器初始化
在 Spring Security 初始化核心過濾器時 HttpSecurity
會通過將 Spring Security 內置的一些過濾器以 FilterComparator
提供的規(guī)則進行比較按照比較結果進行排序注冊。
2.1 排序規(guī)則
FilterComparator
維護了一個順序的注冊表 filterToOrder
。
FilterComparator() { Step order = new Step(INITIAL_ORDER, ORDER_STEP); put(ChannelProcessingFilter.class, order.next()); put(ConcurrentSessionFilter.class, order.next()); put(WebAsyncManagerIntegrationFilter.class, order.next()); put(SecurityContextPersistenceFilter.class, order.next()); put(HeaderWriterFilter.class, order.next()); put(CorsFilter.class, order.next()); put(CsrfFilter.class, order.next()); put(LogoutFilter.class, order.next()); filterToOrder.put( "org.springframework.security.oauth3.client.web.OAuth3AuthorizationRequestRedirectFilter", order.next()); filterToOrder.put( "org.springframework.security.saml2.provider.service.servlet.filter.Saml2WebSsoAuthenticationRequestFilter", order.next()); put(X509AuthenticationFilter.class, order.next()); put(AbstractPreAuthenticatedProcessingFilter.class, order.next()); filterToOrder.put("org.springframework.security.cas.web.CasAuthenticationFilter", order.next()); filterToOrder.put( "org.springframework.security.oauth3.client.web.OAuth3LoginAuthenticationFilter", order.next()); filterToOrder.put( "org.springframework.security.saml2.provider.service.servlet.filter.Saml2WebSsoAuthenticationFilter", order.next()); put(UsernamePasswordAuthenticationFilter.class, order.next()); put(ConcurrentSessionFilter.class, order.next()); filterToOrder.put( "org.springframework.security.openid.OpenIDAuthenticationFilter", order.next()); put(DefaultLoginPageGeneratingFilter.class, order.next()); put(DefaultLogoutPageGeneratingFilter.class, order.next()); put(ConcurrentSessionFilter.class, order.next()); put(DigestAuthenticationFilter.class, order.next()); filterToOrder.put( "org.springframework.security.oauth3.server.resource.web.BearerTokenAuthenticationFilter", order.next()); put(BasicAuthenticationFilter.class, order.next()); put(RequestCacheAwareFilter.class, order.next()); put(SecurityContextHolderAwareRequestFilter.class, order.next()); put(JaasApiIntegrationFilter.class, order.next()); put(RememberMeAuthenticationFilter.class, order.next()); put(AnonymousAuthenticationFilter.class, order.next()); filterToOrder.put( "org.springframework.security.oauth3.client.web.OAuth3AuthorizationCodeGrantFilter", order.next()); put(SessionManagementFilter.class, order.next()); put(ExceptionTranslationFilter.class, order.next()); put(FilterSecurityInterceptor.class, order.next()); put(SwitchUserFilter.class, order.next()); }
網站欄目:SpringSecurity內置Filter的介紹-創(chuàng)新互聯(lián)
URL網址:http://www.rwnh.cn/article36/epepg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計公司、自適應網站、網站改版、軟件開發(fā)、營銷型網站建設、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容