Shiro設(shè)計(jì)的初衷就是可以運(yùn)行于任何環(huán)境:無(wú)論是簡(jiǎn)單的命令行應(yīng)用程序還是復(fù)雜的企業(yè)集群應(yīng)用。由于運(yùn)行環(huán)境的多樣性,所以有多種配置機(jī)制可用于配置,本節(jié)我們將介紹Shiro內(nèi)核支持的這幾種配置機(jī)制。

 

    小貼士:多種配置方案:

    Shiro的SecurityManager是和JavaBean兼容的,所以我們可以使用諸如Java、Xml(Spring、Jboss、Guice等)、YAML、Json、Groovy等配置方式。

 

一、基于Java代碼的配置

    最簡(jiǎn)單的創(chuàng)建并且使用SecurityManager的方式就是直接在代碼中創(chuàng)建org.apache.shiro.mgt.DefaultSecurityManager類實(shí)例,比如:

1 Realm realm =//instantiate or acquire a Realm instance. We'll discuss Realms later.2 SecurityManager securityManager =newDefaultSecurityManager(realm);3 //Make the SecurityManager instance available to the entire application via static memory:4 SecurityUtils.setSecurityManager(securityManager);

 

只需區(qū)區(qū)三行代碼,我們就已經(jīng)為任何類型的應(yīng)用程序配置好了一個(gè)全功能的Shiro運(yùn)行環(huán)境,你看,多簡(jiǎn)單。

 

    SecurityManager對(duì)象圖譜

        就像我們?cè)诩軜?gòu)一節(jié)中介紹的,SecurityManager的實(shí)現(xiàn)是模塊化的,而且可以兼容JavaBean,所以你可以通過(guò)setter和getter方法來(lái)配置SecurityManager及其內(nèi)部組件。

    比如如果你想把一個(gè)自定義的SessionDAO配置為SecurityManager的Session管理器,你可以直接調(diào)用SessionManager的setSessionDAO方法。<