最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringSecurity權限控制實現原理解析

 更新時間:2020年03月03日 14:29:58   作者:天宇軒-王  
這篇文章主要介紹了SpringSecurity權限控制實現原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

菜單控制:

可以用來判斷這個用戶是不是有這些角色,沒有的話就不展示

數據控制:

由于數據都是從后端查的,在后端控制權限就可以了

<!--
    開啟權限控制注解支持
    jsr250-annotations="enabled"表示支持jsr250-api的注解,需要jsr250-api的jar包
    pre-post-annotations="enabled"表示支持spring表達式注解
    secured-annotations="enabled"這才是SpringSecurity提供的注解
   -->
  <security:global-method-security jsr250-annotations="enabled"
                   pre-post-annotations="enabled"
                   secured-annotations="enabled"/>

注:這個要放在mvc的容器中,因為子容器可以訪問到主容器,主容器訪問不到子容器

/表示當前類中所有方法都需要ROLE_ADMIN或者ROLE_PRODUCT才能訪問
@Controller
@RequestMapping("/product")
@RolesAllowed({"ROLE_ADMIN","ROLE_PRODUCT"})//JSR-250注解
public class ProductController {
@RequestMapping("/findAll")
public String findAll(){
return "product-list";
}
}
//表示當前類中findAll方法需要ROLE_ADMIN或者ROLE_PRODUCT才能訪問
@Controller
@RequestMapping("/product")
public class ProductController {
@RequestMapping("/findAll")
@PreAuthorize("hasAnyRole('ROLE_ADMIN','ROLE_PRODUCT')")//spring表達式注解
public String findAll(){
return "product-list";
}
}
//表示當前類中所有方法都需要ROLE_ADMIN或者ROLE_PRODUCT才能訪問
@Controller
@RequestMapping("/product")
@Secured({"ROLE_ADMIN","ROLE_PRODUCT"})//SpringSecurity注解
public class ProductController {
@RequestMapping("/findAll")
public String findAll(){
return "product-list";
}
}

但是會報403無法訪問

方式一:在 spring-security.xml配置文件中處理

<!--設置可以用spring的el表達式配置Spring Security并自動生成對應配置組件(過濾器)-->
<security:http auto-config="true" use-expressions="true">
<!--省略其它配置-->
<!--403異常處理-->
<security:access-denied-handler error-page="/403.jsp"/>
</security:http>

方式二:在 web.xml中處理

<error-page>
  <error-code>403</error-code>
  <location>/403.jsp</location>
</error-page>

方式三:編寫異常處理器

/**
 * @author WGR
 * @create 2020/3/2 -- 17:33
 */
@ControllerAdvice
public class ControllerExceptionAdvice {

  //只有出現AccessDeniedException異常才調轉403.jsp頁面
  @ExceptionHandler(AccessDeniedException.class)
  public String exceptionAdvice(){
    System.out.println("1234");
    return "forward:/403.jsp";
  }
}

注:如果是spring項目,也要把這個掃描進去。

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

相關文章

  • Java編程用兩個棧實現隊列代碼分享

    Java編程用兩個棧實現隊列代碼分享

    這篇文章主要介紹了Java編程用兩個棧實現隊列代碼分享,具有一定參考價值,這里給大家分享下,供需要的朋友了解。
    2017-10-10
  • Java如何配置IDEA自定義注釋

    Java如何配置IDEA自定義注釋

    在IDEA中設置自動創(chuàng)建類和方法的注釋可以提高編碼效率,確保代碼的一致性和可讀性,首先,對于創(chuàng)建類的注釋,可以通過修改File→Settings→File and Code Templates→Class的模板來實現,其次,對于方法注釋
    2024-10-10
  • 詳解如何在Spring中為@Value注解設置默認值

    詳解如何在Spring中為@Value注解設置默認值

    在Spring開發(fā)中,我們經常會遇到需要從配置文件中讀取屬性的情況,@Value注解是Spring提供的一種便捷方式,能夠讓我們輕松地將配置文件中的屬性注入到Spring Bean中,
    2024-10-10
  • 深入理解Java中的String(示例詳解)

    深入理解Java中的String(示例詳解)

    文章詳細介紹了Java中String類的特點、用途、主要方法以及常見用法,String類是不可變的,具有字符串常量池,特定的內存結構,并隨JDK版本更新而優(yōu)化,它廣泛用于表示和處理文本數據,并在內存管理和性能優(yōu)化方面表現出色,感興趣的朋友一起看看吧
    2025-03-03
  • Java開發(fā)人員需知的十大戒律

    Java開發(fā)人員需知的十大戒律

    這篇文章主要介紹了Java開發(fā)人員需知的十大戒律,較為詳細的總結分析了Java開發(fā)中常見的注意事項與編程技巧,需要的朋友可以參考下
    2015-10-10
  • SpringMVC中參數綁定問題實例詳解

    SpringMVC中參數綁定問題實例詳解

    springmvc是用來處理頁面的一些請求,然后將數據再通過視圖返回給用戶的,下面這篇文章主要給大家介紹了關于SpringMVC中參數綁定問題的相關資料,需要的朋友可以參考下
    2022-04-04
  • Java基于循環(huán)遞歸回溯實現八皇后問題算法示例

    Java基于循環(huán)遞歸回溯實現八皇后問題算法示例

    這篇文章主要介紹了Java基于循環(huán)遞歸回溯實現八皇后問題算法,結合具體實例形式分析了java的遍歷、遞歸、回溯等算法實現八皇后問題的具體步驟與相關操作技巧,需要的朋友可以參考下
    2017-06-06
  • Java8對List排序的方法大全

    Java8對List排序的方法大全

    這篇文章主要給大家介紹了關于Java8對List排序的方法大全,其實Java針對數組和List的排序都有實現,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • SpringBoot熔斷機制之CircuitBreaker詳解

    SpringBoot熔斷機制之CircuitBreaker詳解

    這篇文章主要介紹了SpringBoot熔斷機制之CircuitBreaker詳解,SpringBoot的熔斷機制在微服務架構中扮演著重要角色,其中CircuitBreaker是其核心機制之一,用于防止服務的異常狀態(tài)影響到整個系統(tǒng)的運作,需要的朋友可以參考下
    2023-10-10
  • Java中的DecimalFormat用法解析

    Java中的DecimalFormat用法解析

    這篇文章主要介紹了Java中的DecimalFormat用法解析,DecimalFormat是Java中用于格式化數字的類,它提供了一種簡單而靈活的方式來格式化數字,包括指定小數位數、千位分隔符、貨幣符號等,需要的朋友可以參考下
    2023-10-10

最新評論

淮阳县| 安多县| 鲁甸县| 沙田区| 遵义县| 五原县| 临武县| 墨江| 讷河市| 太白县| 阿鲁科尔沁旗| 旺苍县| 西昌市| 泸定县| 赫章县| 甘洛县| 太康县| 辉县市| 彭泽县| 始兴县| 鄱阳县| 诸暨市| 桐城市| 林周县| 凤冈县| 宜章县| 沙河市| 大荔县| 诏安县| 莫力| 平原县| 木兰县| 班玛县| 鹿邑县| 巧家县| 平顺县| 肥城市| 桂林市| 青川县| 蓝山县| 来宾市|