SpringSecurity筆記1-初印象

簡介


基本原理


簡單流程

  • 客戶端發起一個請求,進入 Security 過濾器鏈。html

  • 當到 LogoutFilter 的時候判斷是不是登出路徑,若是是登出路徑則到 logoutHandler ,若是登出成功則到 logoutSuccessHandler 登出成功處理,若是登出失敗則由 ExceptionTranslationFilter ;若是不是登出路徑則直接進入下一個過濾器。java

  • 當到 UsernamePasswordAuthenticationFilter 的時候判斷是否爲登陸路徑,若是是,則進入該過濾器進行登陸操做,若是登陸失敗則到 AuthenticationFailureHandler 登陸失敗處理器處理,若是登陸成功則到 AuthenticationSuccessHandler 登陸成功處理器處理,若是不是登陸請求則不進入該過濾器。spring

  • 當到 FilterSecurityInterceptor 的時候會拿到 uri ,根據 uri 去找對應的鑑權管理器,鑑權管理器作鑑權工做,鑑權成功則到 Controller 層不然到 AccessDeniedHandler 鑑權失敗處理器處理。安全


相關依賴

  • 若是是SpringBoot項目,引入如下依賴便可
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>
  • 若是項目中引入了 spring-cloud-dependencies依賴
    就能夠用SpringCloud的OAuth2的依賴,該依賴下包含spring-cloud-starter-security,即同時引入OAuth2和Security的依賴 ,以下:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
  • 注意:自行選擇合適版本的依賴,若是我理解錯誤請指出

簡單使用

@RestController
public class Hello {

    @RequestMapping("/hello")
    public String hello(){
        return "hello spring security";
    }
}
  • 啓動項目後訪問 /hello 會跳轉到 /login
    默認用戶名爲 user,密碼在控制檯日誌查看,登陸成功便可正常訪問 /hello
相關文章
相關標籤/搜索