在專案中用Spring的Acegi安全框架的步驟

2021-05-06 15:49:15 字數 2671 閱讀 6249

0、準備:配置資料來源

1、配置認證管理器(org.acegisecurity.providers.providermanager)

1.1宣告乙個dao認證提供者

即:配置authenticationdao的例項(依賴0步驟):

acegi提供了兩個可供選擇的authenticationdao的例項:inmemorydaoimpl(記憶體dao)和jdbcdaoimpl(jdbc dao)。

注意:inmemorydaoimpl有明顯的侷限性。最主要的一點是,對安全性進行管理時要求你重新編輯spring的配置檔案並且重新部署應用。因此,反對在生產環境下使用inmemorydaoimpl,而是應該考慮使用jdbcdaoimpl。

1.2選擇並配置認證提供者(依賴1.1步驟)

acegi選擇的認證提供者(黑體常用)

認證提供者 目    的

org.acegisecurity.adapters.authbyadapterprovider 使用容器的介面卡驗證身份。

org.acegisecurity.providers.cas.casauthenticationprovider 根據yale中心認證服務驗證身份。

org.acegisecurity.providers.dao.daoauthenticationprovider 從資料庫中獲取使用者資訊,包括使用者名稱和密碼。

org.acegisecurity.providers.jaas.jaasauthenticationprovider 從jaas登入配置中獲取使用者資訊。

org.acegisecurity.providers.dao.passworddaoauthenticationprovider 從資料庫中獲取使用者資訊,但讓底層的資料來源完成實際的身份驗證。

org.acegisecurity.providers.rcp.remoteauthenticationprovider 根據遠端服務驗證使用者身份。

org.acegisecurity.runas.runasimplauthenticationprovider 針對身份已經被執行身份管理器替換的使用者進行認證。

org.acegisecurity.providers.testingauthenticationprovider 用於單元測試。自動認為乙個testingauthenticationtoken是有效的。不應用於生產環境。

1.3配置認證管理器(依賴1.2步驟)

可選配置:使用加密的密碼(acegi提供了三個密碼編碼器)、快取使用者資訊。

2、授權管理器配置(實現org.acegisecurity.accessdecisionmanager介面)

2.1配置訪問決策投票者

(實現了net.sf.acegisecurity.vote.accessdecisionvoter介面)

2.2授權管理器配置(依賴2.1步驟)

acegi提供了適用於大多數情形的accessdecisionmanager的三個實現類。

acegi的訪問決策管理器如何計票

訪問決策管理器 如 何 決 策

affirmativebased 當至少有乙個投票者投允許訪問票時允許訪問

consensusbased 當所有投票者都投允許訪問票時允許訪問

unanimousbased 當沒有投票者投拒絕訪問票時允許訪問

3、方法安全訪問配置

3.1配置方法安全訪問的***(依賴1和2步驟)

3.2配置要安全**的bean(依賴3.1步驟)

4、真正對url資源保護的filtersecurityinterceptor配置

5、配置認證入口點和對應的過濾處理器

acegi提供了三個現成的認證入口點:      

(1)、 basicprocessingfilterentrypoint——通過向瀏覽器傳送乙個http 401(未授權)訊息,由瀏覽器彈出登入對話方塊,提示使用者登入;      

(2)、authenticationprocessingfilterentrypoint——將使用者重定向到乙個基於html表單的登入頁面;      

(3)、casprocessingfilterentrypoint——將使用者重定向至乙個yale cas登入頁面。      

無論使用哪種認證入口點,都會提示使用者需要提供使用者名稱/密碼來標識他/她自己的身份。      

當使用者提交使用者名稱和密碼之後,acegi需要通過某種方式給予認證管理器乙個驗證使用者身份的機會。             

處理認證請求的工作由認證處理過濾器負責完成。acegi提供了三個認證處理過濾器:      

(1)、basicprocessingfilter——處理http基本身份驗證請求;      

(2)、authenticationprocessingfilter——處理基於表單的身份驗證請求;

(3)、casprocessingfilter——基於cas服務票據的存在性和有效性驗證使用者身份。

可配置基於表單的身份驗證或者基本身份驗證配置或者cas身份驗證。

6、配置安全強制過濾器(依賴4和5步驟)

7、整合處理器配置 (?) 

8、通道處理器配置(可選)

9、exceptiontranslationfilter是用來捕獲當授權失敗的時候會丟擲異常

10、**過濾器處理器的配置

11、在web.xml中配置**過濾器

在vue新專案中用TypeScript 配置篇

npm install typescript ts loader tslint tslint loader tslint config standard vue property decorator vue class component可參考typescript vue start include...

在實際專案中用UML建模的總結

做機房收費系統的時候,剛對uml有乙個大致的概念,就開始了對機房收費系統的建模。uml可以理解為乙個分析交流的方法。多個人建乙個系統,人多了,為了避免歧義,就得用標準化的交流方法。圖形表現力最強,所以在眾人進行交流的時候,畫圖最好。建模的過程 在建模的過程中花了大量的時間。開始其實沒有什麼建模的概念...

在實際專案中用UML建模的總結

做機房收費系統的時候,剛對uml有乙個大致的概念,就開始了對機房收費系統的建模。uml可以理解為乙個分析交流的方法。多個人建乙個系統,人多了,為了避免歧義,就得用標準化的交流方法。圖形表現力最強,所以在眾人進行交流的時候,畫圖最好。建模的過程 在建模的過程中花了大量的時間。開始其實沒有什麼建模的概念...