Spring Security(一)
阿新 • • 發佈:2019-01-10
Spring Security(一)
基本原理
前言
Spring Security核心功能
- 認證(你是誰)
- 授權(你能幹什麼)
- 攻擊防護(防止偽造身份)
Srping Security基本原理
專案中如果加入了Spring Security的依賴不做任何配置情況下,啟動專案後,訪問任何url都需要進行登入,SrpingSecurity預設提供了彈窗式的登入,預設使用者名稱:user,密碼會在專案啟動日誌中打印出來。
- 簡單的表單登入
// 建立一個類,繼承 WebSecurityConfigurerAdapter 重寫 configure 方法 @Configuration public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { // 啟用表單登陸 http.formLogin() .and() // 對請求做授權 .authorizeRequests() // 任何請求 .anyRequest() // 都需要身份認證 .authenticated(); } }
啟動專案後,訪問任何路徑都會調轉到一個Security預設的表單頁面中。
- Spring Security核心就是過濾器鏈
依照這個圖可以看出 FilterSecurityInterceptor是整個過濾器鏈的最後一道關卡,ExceptionTranslationFilter會處理FilterSecurityInterceptor丟擲的異常資訊。
基本流程:
使用者訪問受保護的連結時首先會到 FilterSecurityInterceptor 如果不符合條件會拋一個異常到ExceptionTranslationFilter 然後 ExceptionTranslationFilter