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

2021-08-29 18:58:09 字數 2589 閱讀 2654

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中配置**過濾器

gradle在專案中的應用

compilesdkversion 代表是使用的sdk版本buildtoolsversion 代表構建工具的版本,一般都是sdk相配套的。在專案建立的時候就會自動生成signingconfigs 簽名配置,主要有 develop,release develop 開發時候的配置keyalias apk...

Kibana在專案中的應用

雖然本文主要闡釋kibana 在專案中的應用 但是我們需要了解乙個常識,那就是一般情況下elk都是組合應用的,在我們的專案中我們也是一起使用的,但是由於對kibana 的頗具熱情,所以本文是對kibana的初始 先說下專案背景,我是datawarehouse 的 免不了會對些個datastage j...

淺拷貝在專案中的應用

有一些概念我們清楚,但在實際中不知道如何去用,這往往是c 初學者的乙個共同的問題,今天我來講的就是 淺表拷貝 簡單來說就是把乙個物件,一模一樣的複製出來乙份來,但淺表拷貝只複製原物件的引用位址,在改變新物件時,原來物件不會改變,而深表拷貝是完全拷貝,在改變新物件時,原物件也會受到影響。以下是淺表拷貝...