亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Spring 應用中集成 Apache Shiro的方法

2024-07-14 08:40:40
字體:
來源:轉載
供稿:網友

這一篇文章涵蓋了將 Shiro 集成到基于 Spring 的應用程序的方法。

Shiro 的 Java Bean兼容性使它非常適合通過 Spring XML 或其他基于 Spring 的配置機制進行配置。Shiro 的應用程序需要一個應用程序單例安全管理器 ( SecuriyManager) 實例。注意,這并不一定是靜態的單例,但是應用程序應該只使用一個實例,不管它是否是靜態的單例。

1.獨立的應用程序

以下是在 Spring 應用程序中啟用應用程序單例安全管理器的最簡單方法:

<!-- 定義連接到后端安全數據源的 Realm : --><bean id="myRealm" class="...">  ...</bean><bean id="securityManager" class="org.apache.shiro.mgt.DefaultSecurityManager">  <!-- 單一 Realm 應用這樣寫。如果有多個 Realm ,可以使用 "realms" 屬性 -->  <property name="realm" ref="myRealm"/></bean><bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> <!-- 對于最簡單的集成方式,就像所有的 SecurityUtils 中的靜態方法一樣,在所有情況下都適用,將 securityManager bean 聲明為一個靜態的單例對象。但不要在 web 應用程序中這樣做。參見下面的 “web 應用程序” 部分。 --><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">  <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>  <property name="arguments" ref="securityManager"/></bean>

2.Web 應用程序

Shiro 對 Spring web 應用程序有很棒的支持。在一個 web 應用程序中,所有的可用的 web 請求都必須經過 Shiro Filter。這個過濾器非常強大,允許基于 URL 路徑表達式執行的特殊自定義任何過濾器鏈。

在 Shiro 1.0之前,你必須在 Spring web 應用程序中使用一種混合的方法,定義 Shiro 的過濾器所有的配置屬性都在 web.xml 中。但是在 spring.xml中定義 securityManager,這有點不友好。

現在,在 Shiro 1.0 以上的版本中,所有的 Shiro 配置都是在Spring XML 中完成的,它提供了更健壯的 Spring 配置機制。
以下是如何在基于 spring 的 web 應用程序中配置 Shiro:

web.xml

除了其他的 spring 的一些標簽 ( ContextLoaderListener、Log4jConfigListener 等),還定義了以下過濾器和過濾器的映射:

<!-- 在 applicationContext.xml 中,過濾器名稱 “shiroFilter” bean的名稱匹配。--><filter>  <filter-name>shiroFilter</filter-name>  <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  <init-param>    <param-name>targetFilterLifecycle</param-name>    <param-value>true</param-value>  </init-param></filter>...<!-- 確保你想要的任何請求都可以被過濾。/ * 捕獲所有請求。通常,這個過濾器映射首先 (在所有其他的之前)定義,確保 Shiro 在過濾器鏈的后續過濾器中工作:--><filter-mapping>  <filter-name>shiroFilter</filter-name>  <url-pattern>/*</url-pattern></filter-mapping>

applicationContext.xml

在 applicationContext.xml 文件,定義 web 適用的SecurityManager 和 “shiroFilter” bean,這個bean 在 web.xml 中會被引用。

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  <property name="securityManager" ref="securityManager"/>  <!-- 根據具體情況定義以下幾個屬性:  <property name="loginUrl" value="/login.jsp"/>  <property name="successUrl" value="/home.jsp"/>  <property name="unauthorizedUrl" value="/unauthorized.jsp"/> -->  <!-- 如果聲明過任何的 javax.servlet,“filters” 屬性就是不必要的了-->  <!-- <property name="filters">    <util:map>      <entry key="anAlias" value-ref="someFilter"/>    </util:map>  </property> -->  <property name="filterChainDefinitions">    <value>      # 定義需要過濾的 url :      /admin/** = authc, roles[admin]      /docs/** = authc, perms[document:read]      /** = authc      </value>  </property></bean><!-- 可以在上下文中定義的任何 javax.servlet.Filter bean,它們會自動被上面的 “shiroFilter” bean 所捕獲,并為“filterChainDefinitions” 屬性所用。如果需要的話,可以手動添加/顯式添加到 shiroFilter 的 “filters” Map 上。--><bean id="someFilter" class="..."/><bean id="anotherFilter" class="..."> ... </bean>...<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">  <!-- 單一 Realm 應用這樣寫。如果有多個 Realm ,可以使用 "realms" 屬性. -->  <property name="realm" ref="myRealm"/>  <!-- 認情況下,適用 servlet 容器的 session 。取消對這一行的注釋后則使用 shiro的原生 session -->  <!-- <property name="sessionMode" value="native"/> --></bean><bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/><!-- 通過自定義 Shiro Realm 的子類來使用后臺的數據源 --><bean id="myRealm" class="...">  ...</bean>

啟用 Shiro 的注解

在應用程序中,可能需要使用 Shiro 的注釋來進行安全檢查(例如,@RequiresRole、@requiresPermission 等等。這需要 Shiro的 Spring AOP 集成,以掃描適當的帶注釋的類,并在必要時執行安全邏輯。下面是如何啟用這些注釋,將這兩個 bean 定義添加到 applicationContext.xml 中:

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/>  <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">  <property name="securityManager" ref="securityManager"/></bean>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色yeye香蕉凹凸一区二区av| 欧美精品少妇videofree| 国产欧美日韩丝袜精品一区| 欧美精品videosex极品1| 97超级碰在线看视频免费在线看| 久久久久久久久久久久av| 亚洲精品国精品久久99热一| 国产精品久久久久久久7电影| 欧美性xxxxx极品娇小| 久久久亚洲福利精品午夜| 欧美特级www| 国产在线98福利播放视频| 久久久久日韩精品久久久男男| 久久精品国产亚洲精品| 欧美风情在线观看| 国产精品小说在线| 久久的精品视频| 亚洲欧美综合v| 国产精品日韩欧美综合| www亚洲欧美| 日韩av中文字幕在线免费观看| 色噜噜狠狠色综合网图区| 亚洲精品福利免费在线观看| 亚洲999一在线观看www| 97久久伊人激情网| 亚洲性生活视频在线观看| 久久精品2019中文字幕| 欧美疯狂做受xxxx高潮| 欧美极品欧美精品欧美视频| 国产视频自拍一区| 国产伦精品免费视频| 91av在线精品| 亚洲欧美日韩在线高清直播| 久久这里只有精品99| 国产亚洲成精品久久| 国产精品日韩在线播放| 欧美在线观看网址综合| 日韩高清人体午夜| 亚洲电影在线看| 成人久久18免费网站图片| www.亚洲人.com| 国产九九精品视频| 91天堂在线视频| 久久精品久久精品亚洲人| 日韩不卡中文字幕| 国产精品久久久久久久久久久不卡| 日本欧美中文字幕| 日本精品免费一区二区三区| 欧美亚洲成人免费| 日韩av在线网页| 成人久久精品视频| 国产精品久久久久久婷婷天堂| 大荫蒂欧美视频另类xxxx| 91福利视频网| 成人性生交大片免费看视频直播| 国产精品久久久久久久久借妻| 国产成人免费91av在线| 精品久久久久久中文字幕大豆网| 久久久噜久噜久久综合| 色噜噜亚洲精品中文字幕| 日韩极品精品视频免费观看| 一区二区亚洲欧洲国产日韩| 国产精品视频1区| 欧美性猛交xxxx乱大交3| 九九热在线精品视频| 久久久中文字幕| 成人黄色生活片| 国产午夜精品久久久| 欧美成人午夜激情视频| 亚洲乱码国产乱码精品精天堂| 国产精品久久久久久中文字| 精品动漫一区二区| 日韩女优人人人人射在线视频| 超碰日本道色综合久久综合| 成人中文字幕+乱码+中文字幕| 久久99久久亚洲国产| 成人激情视频小说免费下载| 亚洲国产精品福利| 91国语精品自产拍在线观看性色| 九九热这里只有精品免费看| 国语自产精品视频在线看抢先版图片| 亚洲人成网站777色婷婷| 亚洲精品福利资源站| 亚洲人线精品午夜| 国内精品美女av在线播放| 亚洲欧洲日产国码av系列天堂| 韩国国内大量揄拍精品视频| 日韩hd视频在线观看| 国产精品流白浆视频| 国产91在线视频| 欧美极品xxxx| 欧美肥臀大乳一区二区免费视频| 日韩高清免费在线| 国产欧美日韩高清| 18性欧美xxxⅹ性满足| 日韩精品亚洲元码| 成人免费在线视频网址| 日韩美女在线观看| 色与欲影视天天看综合网| 亚洲人精品午夜在线观看| 久久人人爽人人爽爽久久| 蜜臀久久99精品久久久无需会员| 久久色免费在线视频| 亚洲社区在线观看| 国产精品久久婷婷六月丁香| 久久国产精品首页| 有码中文亚洲精品| 欧美日韩国产专区| 日韩精品久久久久久福利| 国产亚洲人成a一在线v站| 成人免费直播live| 日本一区二区不卡| www.精品av.com| 欧美夫妻性生活xx| 国产最新精品视频| 国产精品爽黄69天堂a| 亚州欧美日韩中文视频| 久久伊人免费视频| www.99久久热国产日韩欧美.com| 一本一本久久a久久精品综合小说| 2019中文字幕在线观看| 亚洲老板91色精品久久| 久久久精品一区二区三区| 亚洲嫩模很污视频| 久久亚洲春色中文字幕| 国产一区二区黄| 91在线无精精品一区二区| 精品亚洲国产成av人片传媒| 国产美女精品视频免费观看| 久久在线免费观看视频| 亚洲成人激情图| 日韩av不卡电影| 色婷婷久久av| 日本在线观看天堂男亚洲| 欧美日韩国产精品一区二区不卡中文| 日韩精品视频免费| 久久久久久久久久久人体| 欧美成人午夜剧场免费观看| 国产精品自拍网| 欧美性高潮在线| 韩日欧美一区二区| 日韩欧美在线观看视频| 亚洲专区国产精品| 亚洲欧美中文日韩v在线观看| 久久久久久久久电影| 欧美专区在线观看| 日韩大片在线观看视频| 日韩欧美黄色动漫| 久久男人资源视频| 国内外成人免费激情在线视频| 97视频国产在线| 91亚洲精品视频| 亚洲欧美日韩国产中文| 欧美日韩爱爱视频| 久久久久久久999精品视频| 国产精品视频精品| 欧美在线观看一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 97视频在线观看网址| 国产精品羞羞答答| 成人精品一区二区三区电影免费| 国产精品成人久久久久| 欧美国产一区二区三区| 日韩在线免费高清视频|