1. 程式人生 > >4.SSM配置shiro許可權管理

4.SSM配置shiro許可權管理

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"
> <!-- 自動掃描該包,使SpringMVC認為包下用了@controller註解的類是控制器 --> <context:component-scan base-package="com.yys.http.*" > <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan> <!-- <mvc:annotation-driven /> 是一種簡寫形式,完全可以手動配置替代這種簡寫形式,簡寫形式可以讓初學都快速應用預設配置方案。 <mvc:annotation-driven /> 會自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean, 是spring MVC為@Controllers分發請求所必須的。 並提供了:資料繫結支援,@NumberFormatannotation支援,@DateTimeFormat支援, @Valid支援,讀寫XML的支援(JAXB),讀寫JSON的支援(Jackson)。後面,我們處理響應ajax請求時,就使用到了對json的支援。 後面,對action寫JUnit單元測試時,要從spring IOC容器中取DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,來完成測試,取的時候要知道是<mvc:annotation-driven />這一句註冊的這兩個bean。
--> <!-- <mvc:annotation-driven /> &lt;!&ndash; 避免IE執行AJAX時,返回JSON出現下載檔案&ndash;&gt; <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> &lt;!&ndash; 啟動SpringMVC的註解功能,完成請求和註解POJO的對映 &ndash;&gt; <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> &lt;!&ndash; JSON轉換器 &ndash;&gt; </list> </property> </bean>--> <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> <bean class="org.springframework.http.converter.FormHttpMessageConverter" /> <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" /> <!--<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />--> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" /> </mvc:message-converters> </mvc:annotation-driven> <mvc:default-servlet-handler /> <!-- 避免IE執行AJAX時,返回JSON出現下載檔案 --> <!-- 支援JSON資料格式 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/><!-- 解析匯出檔案byte流 --> <ref bean="fastJsonHttpMessageConverter" /> <!-- <ref bean="mappingJacksonHttpMessageConverter" /> --> </list> </property> </bean> <!--<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> </bean>--> <!-- 使用fastJson來支援JSON資料格式 --> <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>application/json</value> </list> </property> <property name="features"> <list> <value>WriteMapNullValue</value> <value>QuoteFieldNames</value> </list> </property> </bean> <!-- 定義跳轉的檔案的前後綴 ,檢視模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 這裡的配置我的理解是自動給後面action的方法return的字串加上字首和字尾,變成一個 可用的url地址 --> <property name="prefix" value="/WEB-INF/view/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 靜態資源配置 --> <mvc:resources mapping="/static/**" location="static/"/> <!-- <aop:config proxy-target-class="true"/> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager"/> </bean>--> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="org.apache.shiro.authz.UnauthorizedException">/template/front/404</prop> <prop key="java.lang.Throwable">/template/front/500</prop> </props> </property> <property name="statusCodes"> <props> <prop key="500">500</prop> <prop key="404">404</prop> <prop key="403">403</prop> </props> </property> <property name="warnLogCategory" value="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" /> <property name="defaultErrorView" value="/template/front/500" /> <property name="defaultStatusCode" value="200" /> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> <!-- &lt;!&ndash; 支援Shiro對Controller的方法級AOP安全控制 begin&ndash;&gt; <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> &lt;!&ndash; 保證實現了Shiro內部lifecycle函式的bean執行 &ndash;&gt; <bean class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>--> <!-- 攔截器配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.yys.http.interceptor.HttpInterceptor"> <!--是否開啟longebo頭部資訊認證--> <property name="isYysblogAccess" value="true"/> <property name="allowUrls"> <list> <!-- 如果請求中包含以下路徑,則不進行攔截 --> <value>/</value> <value>/static</value> </list> </property> </bean> </mvc:interceptor> </mvc:interceptors> </beans>

相關推薦

4.SSM配置shiro許可權管理

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

SSM整合shiro許可權管理

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

springboot配置shiro許可權管理,網搜搜採集網站許可權控制程式碼

import outshine.shiro.authc.AccountSubjectFactory; import outshine.shiro.filter.AuthenticatedFilter; import outshine.shiro.realm.AccountRealm; import or

ssm整合shiro許可權管理-乾貨

一、    表結構(表關係)user、role、user_role、permission、role_permission,使用者,角色,許可權相互之間多對多二、配置檔案1、spring-shiro.xmlloginUrl是認證前可以訪問的URL,通常是登入頁面或者登入的方法路

基於SSM + Redis的Shiro許可權管理專案

一、專案介紹(準備工作) 執行前申明 請看完本頁面的所有細節,對你掌握這個專案來說很重要,別一上來就搞,你不爽,我也不爽。 本專案需要一定的Java功底,需要對SpringMvc,Mybatis,有基本的瞭解,其次對Redis有了解和使用更佳。 本專案理論上,只需要一個Redis,然後一個Mysql

Shiro許可權管理】1.Shiro簡介

一、簡介 在Web系統中我們經常要涉及到許可權問題,例如不同角色的人登入系統,他操作的功能、按鈕、選單是各不相同的,這就是所謂的許可權。 Apache Shiro是Java的一個安全(許可權)框架,Shiro可以完成認證、授權、加密、會話管理、Web整合、快取等功能。適用於JavaSE和JavaEE

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://

Spring Boot shiro 許可權管理 小例子

1.引入基本依賴 <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schema

Shiro許可權管理框架(1)

許可權管理:  1.什麼是許可權管理:基本上涉及到使用者參與的系統都要進行許可權管理,許可權管理屬於系統安全範疇,許可權管理實現對使用者訪問系統的控制,按照安全規則或者安全策略可以訪問而且只能訪問自己被授權的資源。    許可權管理包括使用者身份認證和授權兩

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

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

Spring Boot Shiro許可權管理1

原文地址:https://412887952-qq-com.iteye.com/blog/2299732 (1). Shiro簡單介紹 (2). 整合Shiro核心分析 (3). 無Shiro的Spring Boot (4). 整合Shiro 進行使用者授權

Spring Boot Shiro許可權管理2

原文地址:https://412887952-qq-com.iteye.com/blog/2299777  整合shiro大概分這麼一個步驟: (a) pom.xml中新增Shiro依賴; (b) 注入Shiro Factory和SecurityManager。 (c) 身份認證 (d

Spring Boot Shiro許可權管理--自定義 FormAuthenticationFilter驗證碼整合

驗證碼 思路 shiro使用FormAuthenticationFilter進行表單認證,驗證校驗的功能應該加在FormAuthenticationFilter中,在認證之前進行驗證碼校驗。 需要寫FormAuthenticationFilter的子類,繼承FormAuth

Shiro】SpringMVC+Shiro許可權管理

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/

SpringMVC+Shiro許可權管理簡單例子

什麼是許可權呢?舉個簡單的例子:我有一個論壇,註冊的使用者分為normal使用者,manager使用者。對論壇的帖子的操作有這些:新增,刪除,更新,檢視,回覆我們規定:normal使用者只能:新增,檢視,回覆manager使用者可以:刪除,更新normal,manager對應

2.詳解SecurityManager(shiro許可權管理門面)

SecurityManager 介面主要作用 為什麼要先說SecurityManager呢?因為我覺得他是shiro的主要入口,幾乎所有相關的許可權操作,都由他代理了。 1.可以說是所有配置的入口,簡化配置,方便使用。 2.一個介面就可以實現,驗證的操作(

springboot shiro許可權管理

 整合shiro大概分這麼一個步驟:(一) pom.xml中新增Shiro依賴;(二) 注入Shiro Factory和SecurityManager。(三) 身份認證(四) 許可權控制一: pom.xml中新增Shiro依賴1.1:要使用Shiro進行許可權控制,那麼很明顯

SpringBoot入門,整合shiro許可權管理

引言 本文繼續沿用上幾篇部落格的基礎,在此之上整合Shiro,實現許可權管理,具體環境搭建,請參考我之前的部落格,在這裡不做贅述。 1.引入Shrio依賴 pom檔案下新增shiro依賴 <!-- shiro --> <depende

Shiro許可權管理】3.Shiro整合 Spring

下面來說一下如何在Web下使用Shiro。 在大部分Web開發環境下,都是使用Spring與Shiro進行整合,所以下面直接來講解Shiro與Spring整合的方式。 一、準備環境 (1)加入Spring和Shiro的jar包 首先在MyEclipse中新建一個Web工程: