我的第四周

2021-10-03 22:25:22 字數 2204 閱讀 1538

spring security 簡介

spring security 的核心功能主要包括:

認證 (你是誰)

授權 (你能幹什麼)

攻擊防護 (防止偽造身份)

其核心就是一組過濾器鏈,專案啟動後將會自動配置。最核心的就是 basic authentication filter 用來認證使用者的身份,乙個在spring security中一種過濾器處理一種認證方式。

引數詳解

①註解 @enablewebsecurity

在 spring boot 應用中使用 spring security,用到了 @enablewebsecurity註解,官方說明為,該註解和 @configuration 註解一起使用, 註解 websecurityconfigurer 型別的類,或者利用@enablewebsecurity 註解繼承 websecurityconfigureradapter的類,這樣就構成了 spring security 的配置。

②抽象類 websecurityconfigureradapter

一般情況,會選擇繼承 websecurityconfigureradapter 類,其官方說明為:websecurityconfigureradapter 提供了一種便利的方式去建立 websecurityconfigurer的例項,只需要重寫 websecurityconfigureradapter 的方法,即可配置攔截什麼url、設定什麼許可權等安全控制。

③方法 configure(authenticationmanagerbuilder auth) 和 configure(httpsecurity http)

④final 類 httpsecurity

httpsecurity 常用方法及說明:

openidlogin()用於基於 openid 的驗證

headers()將安全標頭新增到響應cors()配置跨域資源共享( cors )

sessionmanagement()允許配置會話管理

jee()配置基於容器的預認證。 在這種情況下,認證由servlet容器管理

x509()配置基於x509的認證

rememberme允許配置「記住我」的驗證

authorizerequests()允許基於使用httpservletrequest限制訪問

requestcache()允許配置請求快取

exceptionhandling()允許配置錯誤處理

securitycontext()在httpservletrequests之間的

securitycontextholder上設定securitycontext的管理。 當使用websecurityconfigureradapter時,這將自動應用

servletapi()將httpservletrequest方法與在其上找到的值整合到securitycontext中。 當使用websecurityconfigureradapter時,這將自動應用

csrf()新增 csrf 支援,使用websecurityconfigureradapter時,預設啟用

logout()新增退出登入支援。當使用websecurityconfigureradapter時,這將自動應用。預設情況是,訪問url」/ logout」,使http session無效來清除使用者,清除已配置的任何#rememberme()身份驗證,清除securitycontextholder,然後重定向到」/login?success」

anonymous()允許配置匿名使用者的表示方法。 當與websecurityconfigureradapter結合使用時,這將自動應用。 預設情況下,匿名使用者將使用org.springframework.security.authentication.anonymousauthenticationtoken表示,幷包含角色 「role_anonymous」

formlogin()指定支援基於表單的身份驗證。如果未指定formloginconfigurer#loginpage(string),則將生成預設登入頁面oauth2login()根據外部oauth 2.0或openid connect 1.0提供程式配置身份驗證requireschannel()配置通道安全。為了使該配置有用,必須提供至少乙個到所需通道的對映httpbasic()配置 http basic 驗證

addfilterat()在指定的filter類的位置新增過

第四周作業

第四周實驗作業 1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 1.1求自然對數e的近似值 include using namespace std int main cout 1.2求圓周率 的近似值 include using name...

第四周作業

實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...

第四周作業

實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...