??在一個實際專案中,并非所有的請求都需要經過Spring Security過濾器,有一些特殊的請求,例如靜態資源等,一般來說并不需要經過Spring Security過濾器鏈,用戶如果訪問這些靜態資源,直接回傳對應的資源即可,
??回顧關于WebSecurity的講解,提到它里邊維護了一個ignoredRequests變數, 該變數,記錄的就是所有需要被忽略的請求,這些被忽略的請求將不再經過Spring Security過濾器,例如,靜態資源目錄結構如圖4-10所示,
??
圖 4-10
現在這些靜態資源的訪問不需要經過Spring Security過濾器,具體配置方案如下:
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/mylogin.html","/loginNew.html");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.csrf().disable();
}
}
??重寫configure(WebSecurity)方法,并配置需要忽略的請求,這些需要忽略的地址,最終都會被添加到ignoredRequests集合中,并最終以過濾器鏈的形式呈現出來,換句話說,上面的配置中一共包含了五個過濾器鏈:configure( W eb Security)方法中配置的四個以及HttpSecurity 中配置的一個(即/**),如果大家不能理解為什么會有五個過濾器鏈,可以回顧關于WebSecurity的分析以及關于FilterChainProxy的分析,這里不再贅述,
??配置完成后,再次啟動專案,此時不需要認證就可以訪問/login.html頁面,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501517.html
標籤:其他
上一篇:第五講 測驗技術與用例設計
