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

首頁 > 開發 > Java > 正文

spring boot 集成shiro的配置方法

2024-07-13 10:15:51
字體:
來源:轉載
供稿:網友

spring boot提供了一個自帶的認證框架,同時也提供自定義的javaconfig配置擴展,spring-sercurity同樣也是優秀的框架,但是習慣了用apache shiro框架,而且原項目就是集成的shiro框架,到網上找了一下配置方式,沒找到完全配置的方法,因此決定自己動手,豐衣足食!

        要在spring boot上集成其他框架,首先要會spring javaconfig方法,利用此方法同樣可以配置其他模塊,廢話少說,開始。。。

        開始前需要導入maven依賴(shiro-web可選):         

  <dependency>   <groupId>org.apache.shiro</groupId>   <artifactId>shiro-core</artifactId>   <version>${shiro.version}</version> </dependency> <dependency>   <groupId>org.apache.shiro</groupId>   <artifactId>shiro-web</artifactId>   <version>${shiro.version}</version> </dependency> <dependency>   <groupId>org.apache.shiro</groupId>   <artifactId>shiro-spring</artifactId>   <version>${shiro.version}</version> </dependency> <dependency>   <groupId>org.apache.shiro</groupId>   <artifactId>shiro-ehcache</artifactId>   <version>${shiro.version}</version> </dependency> 

        原shiro集成spring的配置拿出來,如下:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-lazy-init="true"> <description>Shiro安全配置 來源于: http://shiro.apache.org/spring.html </description> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <!-- Single realm app. If you have multiple realms, use the 'realms' property instead. --> <property name="realm" ref="ShiroRealmImpl" /> <property name="cacheManager" ref="shiroEhcacheManager" /> </bean> <!-- Define the realm you want to use to connect to your back-end security datasource: --> <bean id="ShiroRealmImpl" class="com.wechatserver.web.services.system.impl.ShiroRealmImpl" /> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login" /> <!-- 沒有權限或者失敗后跳轉的頁面 --> <property name="successUrl" value="/sa/index" /> <property name="filterChainDefinitions"> <!-- , roles[admin], perms[document:read] --> <value> <!-- /user/** = authc /role/edit/* = perms[role:edit] /role/save = perms [role:edit] /role/list = perms [role:view] --> /sa/** = authc /** = anon </value> </property> </bean> <!-- 用戶授權/認證信息Cache, 采用EhCache 緩存 --> <bean id="shiroEhcacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <property name="cacheManagerConfigFile" value="classpath:ehcache-shiro.xml" /> </bean> <!-- 保證實現了Shiro內部lifecycle函數的bean執行 --> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" /> <!-- AOP式方法級權限檢查 --> <!-- Enable Shiro Annotations for Spring-configured beans. Only run after --> <!-- the lifecycleBeanProcessor has run: --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean> </beans> 

好多類啊,沒辦法一個一個配置,javaconfig文件如下:

import java.util.LinkedHashMap; import java.util.Map; import org.apache.shiro.cache.ehcache.EhCacheManager; import org.apache.shiro.spring.LifecycleBeanPostProcessor; import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; import org.apache.shiro.spring.web.ShiroFilterFactoryBean; import org.apache.shiro.web.mgt.DefaultWebSecurityManager; import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ShiroConfiguration {   private static Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();   @Bean(name = "ShiroRealmImpl")   public ShiroRealmImpl getShiroRealm() {     return new ShiroRealmImpl();   }   @Bean(name = "shiroEhcacheManager")   public EhCacheManager getEhCacheManager() {     EhCacheManager em = new EhCacheManager();     em.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");     return em;   }   @Bean(name = "lifecycleBeanPostProcessor")   public LifecycleBeanPostProcessor getLifecycleBeanPostProcessor() {     return new LifecycleBeanPostProcessor();   }   @Bean   public DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() {     DefaultAdvisorAutoProxyCreator daap = new DefaultAdvisorAutoProxyCreator();     daap.setProxyTargetClass(true);     return daap;   }   @Bean(name = "securityManager")   public DefaultWebSecurityManager getDefaultWebSecurityManager() {     DefaultWebSecurityManager dwsm = new DefaultWebSecurityManager();     dwsm.setRealm(getShiroRealm());     dwsm.setCacheManager(getEhCacheManager());     return dwsm;   }   @Bean   public AuthorizationAttributeSourceAdvisor getAuthorizationAttributeSourceAdvisor() {     AuthorizationAttributeSourceAdvisor aasa = new AuthorizationAttributeSourceAdvisor();     aasa.setSecurityManager(getDefaultWebSecurityManager());     return new AuthorizationAttributeSourceAdvisor();   }   @Bean(name = "shiroFilter")   public ShiroFilterFactoryBean getShiroFilterFactoryBean() {     ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();     shiroFilterFactoryBean         .setSecurityManager(getDefaultWebSecurityManager());     shiroFilterFactoryBean.setLoginUrl("/login");     shiroFilterFactoryBean.setSuccessUrl("/sa/index");     filterChainDefinitionMap.put("/sa/**", "authc");     filterChainDefinitionMap.put("/**", "anon");     shiroFilterFactoryBean         .setFilterChainDefinitionMap(filterChainDefinitionMap);     return shiroFilterFactoryBean;   } } 

注意點:最后一個是filterChainDefinitionMap的初始化,Map用的是LinkedHashMap來初始化的,各位應用的時候將其配置成properties文件,然后初始化就ok了,改寫好后直接啟動Ok,搬運到spring boot應該是OK的。

別忘了在ehcache-shiro.xml

<ehcache updateCheck="false" name="shiroCache">   <defaultCache       maxElementsInMemory="10000"       eternal="false"       timeToIdleSeconds="120"       timeToLiveSeconds="120"       overflowToDisk="false"       diskPersistent="false"       diskExpiryThreadIntervalSeconds="120"       /> </ehcache> 

備注:ShiroRealmImpl類請參考官方文檔 

總結

以上所述是小編給大家介紹的spring boot 集成shiro的配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线导航| 国产第一区电影| 久久精品2019中文字幕| 亚洲欧美另类在线观看| 日韩欧美极品在线观看| 91精品国产91久久久久福利| 精品视频久久久久久| 日韩av第一页| 97超碰色婷婷| 日韩国产高清视频在线| 国产欧美韩国高清| 国产日韩欧美夫妻视频在线观看| 欧美自拍视频在线| 欧美xxxx综合视频| 中文字幕欧美精品日韩中文字幕| 久久久视频精品| 国产激情综合五月久久| 另类少妇人与禽zozz0性伦| 日本aⅴ大伊香蕉精品视频| 久久精品久久久久久国产 免费| 操人视频在线观看欧美| 国产精品视频999| 日韩视频欧美视频| 国产一区二区在线播放| 亚洲电影天堂av| 亚洲男人天堂2024| 91精品国产综合久久男男| 欧美日韩亚洲高清| 久久夜色精品国产| 国产成人短视频| 亚洲成人三级在线| 久久综合伊人77777尤物| 黄网站色欧美视频| 国内精品一区二区三区| 法国裸体一区二区| 欧美另类69精品久久久久9999| 国产精品最新在线观看| 成人中文字幕在线观看| 奇门遁甲1982国语版免费观看高清| 青青草精品毛片| 欧美精品一区在线播放| 亚洲专区中文字幕| 亚洲色图15p| 国产日韩中文字幕在线| 亚洲精品日韩av| 91精品免费视频| 色中色综合影院手机版在线观看| 91福利视频在线观看| 精品成人在线视频| 亚洲精品国产精品乱码不99按摩| 全亚洲最色的网站在线观看| 亚洲电影天堂av| 日韩av电影院| 精品国产拍在线观看| 久久福利网址导航| 欧美大人香蕉在线| 亚洲免费福利视频| 欧美性猛交xxx| 91av在线视频观看| 亚洲国产精品久久久久| 亚洲人成亚洲人成在线观看| 亚洲偷欧美偷国内偷| 91人人爽人人爽人人精88v| 亚洲午夜女主播在线直播| 精品美女永久免费视频| 精品中文字幕在线| 国产精品va在线播放| 久久综合伊人77777尤物| 在线观看91久久久久久| 高清欧美一区二区三区| 国产精品日韩欧美大师| 大桥未久av一区二区三区| 在线观看日韩av| 不卡毛片在线看| 亚洲视频电影图片偷拍一区| 亚洲国产精品小视频| 亚洲精品自拍视频| 成人在线精品视频| 精品国产一区二区三区在线观看| 亚洲成avwww人| 中文字幕一区日韩电影| 成人福利视频网| 欧美第一淫aaasss性| 另类视频在线观看| 久久久久久伊人| 久久久久久久97| 欧美日韩国产精品一区| 国产性色av一区二区| 欧美专区在线观看| 欧美大片在线看| 亚洲天堂成人在线视频| 亚洲成人激情在线| 久久精品最新地址| 国产精品久久久一区| 久久高清视频免费| 欧美成人剧情片在线观看| 日韩高清电影免费观看完整版| 日本国产高清不卡| 欧洲精品久久久| 亚洲美女又黄又爽在线观看| 久久久久久久久久久人体| 国产欧美日韩91| 午夜精品国产精品大乳美女| 国产91精品久久久久久| 国内揄拍国内精品少妇国语| 性欧美在线看片a免费观看| 亚洲综合中文字幕在线观看| 国产精品久久久久久久久免费看| 日韩欧美在线视频免费观看| 日韩精品久久久久久久玫瑰园| 日本在线精品视频| 欧美色道久久88综合亚洲精品| 91精品久久久久久久久久久久久久| 日韩国产欧美区| 九九热r在线视频精品| 亚洲视频免费一区| 亚洲欧美激情精品一区二区| 成人av在线网址| 97超级碰碰人国产在线观看| 亚洲精品欧美一区二区三区| 日韩一区二区在线视频| 性欧美在线看片a免费观看| 成人国产在线视频| 国产91精品久久久| 亚洲欧美国产精品| 日韩av手机在线看| 在线精品高清中文字幕| 国产精品极品美女在线观看免费| 宅男66日本亚洲欧美视频| 国产精品久久久久秋霞鲁丝| 欧美又大粗又爽又黄大片视频| 色多多国产成人永久免费网站| 国产精品扒开腿爽爽爽视频| 国产成人精品999| 国产精品久久久久影院日本| 成人天堂噜噜噜| 欧美成人全部免费| 日韩在线视频免费观看高清中文| 在线视频日本亚洲性| 色偷偷av一区二区三区| 91在线视频导航| 日韩中文在线中文网三级| 国产成人拍精品视频午夜网站| 亚洲a中文字幕| 国产亚洲精品激情久久| 久久人人爽人人爽人人片av高清| 国产在线一区二区三区| 国产精品日日摸夜夜添夜夜av| 久久久久久久久久久91| 久久久www成人免费精品| 色综合久综合久久综合久鬼88| 日韩精品在线私人| 亚洲另类欧美自拍| 日韩美女在线观看一区| 精品久久久av| 成人性生交大片免费观看嘿嘿视频| 亚洲视频在线观看网站| 国产主播精品在线| 欧美性猛xxx| 91精品视频免费| 懂色av一区二区三区| 九九热精品视频在线播放| 日韩亚洲国产中文字幕| 91国产美女在线观看|