91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringSecurity權限控制實現原理解析

發布時間:2020-09-10 19:15:07 來源:腳本之家 閱讀:260 作者:天宇軒-王 欄目:編程語言

菜單控制:

SpringSecurity權限控制實現原理解析

SpringSecurity權限控制實現原理解析

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

SpringSecurity權限控制實現原理解析

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項目,也要把這個掃描進去。

SpringSecurity權限控制實現原理解析

SpringSecurity權限控制實現原理解析

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广汉市| 定南县| 岳西县| 六枝特区| 贵阳市| 达孜县| 汶川县| 库尔勒市| 内乡县| 湛江市| 吕梁市| 新建县| 高青县| 苏尼特右旗| 梓潼县| 扎鲁特旗| 台湾省| 揭西县| 上蔡县| 南郑县| 井陉县| 甘德县| 沙坪坝区| 密云县| 忻州市| 罗甸县| 习水县| 清原| 剑河县| 延长县| 谢通门县| 陆川县| 康保县| 金坛市| 卢龙县| 高雄市| 开平市| 阿勒泰市| 渑池县| 大丰市| 清流县|