spring-shiro動態URL許可權

今天小編為大家介紹如何使用shiro的來動態控制url許可權。

為什麼要動態控制URL的許可權呢?接下來一一道來

平時我們使用shiro控制URL許可權是這樣的。

每新增一個URL如果需要在shiro的控制下,就需要這樣做。項目簡單的話還感覺不出來,如果項目比較大,或者參與的人比較多,那就很尷尬;首先不說衝突的問題,就是一個個加,不要的時候又要一個個刪,而且關鍵是還要重啟?那有沒有動態的方式呢?比如在資料庫裡面配置?方法肯定是有的。

我們要做的就是講這一塊替換成動態的,刪除時候自動刪除,添加的時候自動添加。當然初始化的時候肯定也是有的。先從主要代碼開始講解。

1、定義一個介面,然後實現這個介面,可能你會問問什麼要定義一個介面,這是習慣,如果你不喜歡,不定義介面實現使用下面的實現類也是可以的。如下:

Advertisements

2、實現這個介面,並添加需要的代碼控制。命名為DefaultFilterChainDefinitions。

3、在shiro的配置文件中使用我們的方法。將此bean先添加到配置文件中,並注入屬性filterChainDefinitions,添加特殊的許可權信息

4、使用Spring SpEL語法修改原來配置為從資料庫獲取許可權

以上就簡單的在初始化的實現了從資料庫獲取URL許可權的操作,不過這還不夠,這只是實現半自動,我們要的是全自動。繼續...

5、定義一個介面FilterChainDefinitionsService作用是實現URL許可權的更刪改查,是不是很熟悉的感覺。

Advertisements

6、實現FilterChainDefinitionsService介面,並實現其中的方法

到這裡就已經結束了,使用也很簡單,只需要在URLService(你自己的資源管理服務類)裡面注入FilterChainDefinitionsService,並調用相應的代碼即可。

注意:

(1)DefaultFilterChainDefinitions也可以直接實現FactoryBean,然後使用@PostConstruct註解就可以不是用SpringSpEL語法 調用loadChains()方法。不清楚的可以加入QQ群:105249460探討

(2)大神勿噴,歡迎指正,小編是菜鳥,謝謝!

Advertisements

你可能會喜歡