1. 程式人生 > >springmvc整合shiro許可權控制

springmvc整合shiro許可權控制

一、什麼是Shiro  
Apache Shiro是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能: 
  • 認證 - 使用者身份識別,常被稱為使用者“登入”;
  • 授權 - 訪問控制;
  • 密碼加密 - 保護或隱藏資料防止被偷窺;
  • 會話管理 - 每使用者相關的時間敏感的狀態。

對於任何一個應用程式,Shiro都可以提供全面的安全管理服務。並且相對於其他安全框架,Shiro要簡單的多。


二:springmvc整合shiro

    1,在web.xml中加入如下配置

   

<!-- 配置Shiro過濾器,先讓Shiro過濾系統接收到的請求 -->
   <!-- 這裡filter-name必須對應applicationContext.xml中定義的<bean id="shiroFilter"/> -->   <!-- 使用[/*]匹配所有請求,保證所有的可控請求都經過Shiro的過濾 -->   <!-- 通常會將此filter-mapping放置到最前面(即其他filter-mapping前面),以保證它是過濾器鏈中第一個起作用的 -->
     <!-- targetFilterLifecycle值預設為false,表示生命週期由SpringApplicationContext管理,設定為true則表示由ServletContainer管理 -->   

    

[html]  view plain  copy
  1. <!-- shiro start安全過濾器 -->
      
  2.     <filter>  
  3.         <filter-name>shiroFilter</filter-name>  
  4.         <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
  5.         <async-supported>true</async-supported>  
  6.         <init-param>  
  7.             <param-name>targetFilterLifecycle</param-name>  
  8.             <param-value>true</param-value>  
  9.         </init-param>  
  10.     </filter>  
  11.   
  12.     <filter-mapping>  
  13.         <filter-name>shiroFilter</filter-name>  
  14.         <url-pattern>/*</url-pattern>  
  15.         <dispatcher>REQUEST</dispatcher>  
  16.     </filter-mapping>  
  17.     <!-- shiro end -->  

2,配置applicationContext.xml

 

<!-- Shiro主過濾器本身功能十分強大,其強大之處就在於它支援任何基於URL路徑表示式的、自定義的過濾器的執行 -->   <!-- Web應用中,Shiro可控制的Web請求必須經過Shiro主過濾器的攔截,Shiro對基於Spring的Web應用提供了完美的支援 -->  


[html]  view plain  copy
  1. <!-- 快取管理器 -->  
  2.     <bean id="cacheManager" class="com.www.admin.spring.SpringCacheManagerWrapper">  
  3.         <property name="cacheManager" ref="springCacheManager"/>  
  4.     </bean>  
  5.   
  6.     <!-- 憑證匹配器 -->  
  7.     <bean id="credentialsMatcher" class="com.www.admin.user.credentials.RetryLimitHashedCredentialsMatcher">  
  8.         <constructor-arg ref="cacheManager"/>  
  9.         <property name="hashAlgorithmName" value="md5"/>  
  10.         <property name="hashIterations" value="2"/>  
  11.         <property name="storedCredentialsHexEncoded" value="true"/>  
  12.     </bean>  
  13.   
  14.     <!-- Realm實現 -->  
  15.     <bean id="userRealm" class="com.www.admin.user.realm.UserRealm">  
  16.         <property name="credentialsMatcher" ref="credentialsMatcher"/>  
  17.         <property name="cachingEnabled" value="true"/>  
  18.         <property name="authenticationCachingEnabled" value="true"/>  
  19.         <property name="authenticationCacheName" value="authenticationCache"/>  
  20.         <property name="authorizationCachingEnabled" value="true"/>  
  21.         <property name="authorizationCacheName" value="authorizationCache"/>  
  22.     </bean>  
  23.   
  24.     <!-- 會話ID生成器 -->  
  25.     <bean id="sessionIdGenerator" class="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator"/>  
  26.   
  27.     <!-- 會話Cookie模板 -->  
  28.     <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">  
  29.         <constructor-arg value="sid"/>  
  30.         <property name="httpOnly" value="true"/>  
  31.         <property name="maxAge" value="-1"/>  
  32.     </bean>  
  33.   
  34.     <bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">  
  35.         <constructor-arg value="rememberMe"/>  
  36.         <property name="httpOnly" value="true"/>  
  37.         <property name="maxAge" value="2592000"/><!-- 30天 -->  
  38.     </bean>  
  39.   
  40.     <!-- rememberMe管理器 -->  
  41.     <bean id=

    相關推薦

    springmvc整合shiro許可權控制

    一、什麼是Shiro   Apache Shiro是一個強大易用的Java安全框架,提供了認證、授權、加密和會話管理等功能:  認證 - 使用者身份識別,常被稱為使用者“登入”; 授權 - 訪問控制; 密碼加密 - 保護或隱藏資料防止被偷窺; 會話

    Springboot+SpringMVC+Myabtis整合shiro許可權控制

    最近也被這個難題搞的我頭都大了額。寫下此篇文章獻給自己和廣大朋友。如果有不懂的地方可以加企鵝號詢問哦。 企鵝號:2054861587,不一定會時時在,但如果有空的話就會給你回答 maven依賴: <dependency> <groupId>

    SpringMVC整合shiro許可權(附原始碼)

    springMVC框架這裡就不多說了,下面是在springMVC框架上面直接整合shiro程式碼步驟 下面是我專案結構: 1、web.xml新增Shiro Filter <filter> <filter-nam

    SpringMVC整合Shiro許可權框架

    最近在學習Shiro,首先非常感謝開濤大神的《跟我學Shiro》系列,在我學習的過程中發揮了很大的指導作用。學習一個新的東西首先就是做一個demo,多看不如多敲,只有在實踐中才能發現自己的欠缺,下面記錄下來我整合shiro的過程。如果有不足之處,還望各位看官多多指出。 一、

    Shiro許可權控制框架 ---SpringMVC+Spring+My batis+Mysql+Maven整合開發Web專案

    在之前的博文簡單的介紹shiro許可權控制框架,現在我們接著講解使用    SpringMVC+Spring+My batis+Mysql+Maven整合開發Web專案 1.先由Maven選擇MavenProject建立一個Web專案(如果你還不會使用Maven的話可以去看

    Apache Shiro許可權控制實戰,許可權控制SpringMVC + Mybatis + Shiro

    Demo已經部署到線上,地址是http://shiro.itboy.net, 管理員帳號:admin,密碼:sojson.com 如果密碼錯誤,請用sojson。 PS:你可以註冊自己的帳號,然後用管理員賦許可權給你自己的帳號,但是,每20分鐘會把資料初始化一次。建議自己

    shiro許可權控制(一):shiro介紹以及整合SSM框架

     shiro安全框架是目前為止作為登入註冊最常用的框架,因為它十分的強大簡單,提供了認證、授權、加密和會話管理等功能 。  shiro能做什麼?       認證:驗證使用者的身份       授權:對使用者執行訪問控制:判斷使用者是否被允許做某事       會話管理:在任

    Springmvc整合Shiro實現許可權管理

    package com.authc.utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.util.Rand

    Shiro+Spring+Struts2整合演示許可權控制

    <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xsi:schemaLocation="http://java.sun.com/xml/ns/jav

    SSM整合shiro許可權管理

    這幾天在學習了shiro許可權管理框架,在剛開始的時候學的時候因為這個配置問題困擾了我很長時間,所以在這篇文章我整合了自己用SSM搭建shiro許可權框架的過程。   1.配置   1.1jar包 在專案配置開始前需要先匯入shiro的相關jar包,下載地址:ht

    Springboot2.x+shiro+redis整合填坑 (一)redis只做快取的情況 Springboot2.0 整合shiro許可權管理

    主要記錄關鍵和有坑的地方 前提: 1、SpringBoot+shiro已經整合完畢,如果沒有整合,先查閱之前的Springboot2.0 整合shiro許可權管理 2、redis已經安裝完成 3、redis客戶端使用Lettuce,這也是sprinboot2.0後預設的,與jedis的區別,自行百度

    SpringBoot整合Shiro許可權管理框架

    專案目錄結構 1.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://

    SpringMVC整合Shiro和Swagger產生的路徑過濾問題

    SSM整合Swagger和Shiro時出現的問題: 一:啟動swagger報錯Unable to infer base url. This is common when using dynamic servlet解決方法 在shiro配置檔案的自定義的過濾鏈中加上一下程式碼: <!-- swa

    Apache Shiro 許可權控制 使用自定義的JdbcRealm(3)

    使用自定義的realm 時需要配置shiro.ini 檔案 以及建一個類  MyJdbcRealm  繼承自  AuthorizingRealm 重寫其中的兩個方法        &nbs

    Apache Shiro 許可權控制(2)

    Shiro的 /WEB-INF目錄下的shiro.ini 配置檔案url匹配方式: ① ? 可以匹配一個字元   /admin?   ---->可以匹配到/admin1   /admin12匹配不到 ② * 

    javaEE shiro框架,許可權控制。基於Spring框架的shiro許可權控制

    許可權控制的方式: 方式一:通過過濾器或Struts2的攔截器實現許可權控制 方式二:為Struts2的Action加入註解(標識),然後為Action建立代理物件;代理物件進行許可權校驗,校驗通過後通過反射呼叫目標方法。 shiro框架可以進行認證、授權、會話管理、加

    關於Apache shiro許可權控制學習小結

    第一種:URL 級別粗粒度許可權控制 配置 web.xml 的 shiroFilter 攔截 /* 在 spring 的 applicationContext*.xml 配置檔案中配置同名 bean,配置 filterChainDefinitions 攔截控制規則 x

    springMvc整合shiro xml配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3

    在前後端分離的SpringBoot專案中整合Shiro許可權框架

    出自 目錄 專案背景 解決方案 參考文章 專案背景        公司在幾年前就採用了前後端分離的開發模式,前端所有請求都使用ajax。這樣的專案結構在與CAS單點登入等許可權管理框架整合時遇到了很多問題,使得許可權部分的程式碼冗長醜陋,CAS的各種重定向也使得使

    詳解spring整合shiro許可權管理與資料庫設計

    現在基本上所有的後臺系統都逃不過許可權管理這一塊,這算是一個剛需了。現在我們來整合shiro來達到顆粒化許可權管理,也就是從連線選單到頁面功能按鈕,都進行許可權都驗證,從前端按鈕的顯示隱藏,到後臺具體功能方法的許可權驗證。 首先要先設計好我們的資料庫,先來看一張比較粗糙的資