亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringSecurity權(quán)限控制實(shí)現(xiàn)原理解析

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

菜單控制:

可以用來(lái)判斷這個(gè)用戶是不是有這些角色,沒(méi)有的話就不展示

數(shù)據(jù)控制:

由于數(shù)據(jù)都是從后端查的,在后端控制權(quán)限就可以了

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

注:這個(gè)要放在mvc的容器中,因?yàn)樽尤萜骺梢栽L問(wèn)到主容器,主容器訪問(wèn)不到子容器

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

但是會(huì)報(bào)403無(wú)法訪問(wèn)

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

<!--設(shè)置可以用spring的el表達(dá)式配置Spring Security并自動(dòng)生成對(duì)應(yīng)配置組件(過(guò)濾器)-->
<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>

方式三:編寫(xiě)異常處理器

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

  //只有出現(xiàn)AccessDeniedException異常才調(diào)轉(zhuǎn)403.jsp頁(yè)面
  @ExceptionHandler(AccessDeniedException.class)
  public String exceptionAdvice(){
    System.out.println("1234");
    return "forward:/403.jsp";
  }
}

注:如果是spring項(xiàng)目,也要把這個(gè)掃描進(jìn)去。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 通過(guò)實(shí)例解析JMM和Volatile底層原理

    通過(guò)實(shí)例解析JMM和Volatile底層原理

    這篇文章主要介紹了通過(guò)實(shí)例解析JMM和Volatile底層原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • MyEclipse配置JDK的全過(guò)程

    MyEclipse配置JDK的全過(guò)程

    這篇文章主要介紹了MyEclipse配置JDK的全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml

    多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml

    這篇文章主要介紹了多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 如何給Cacheable的key加上常量

    如何給Cacheable的key加上常量

    這篇文章主要介紹了如何給Cacheable的key加上常量的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 一篇文章詳解JAVA遠(yuǎn)程debug

    一篇文章詳解JAVA遠(yuǎn)程debug

    這篇文章主要給大家介紹了關(guān)于JAVA遠(yuǎn)程debug的相關(guān)資料,日常我們debug是經(jīng)常用的,但是本地還好說(shuō),遠(yuǎn)程debug就有點(diǎn)難度,需要的朋友可以參考下
    2023-08-08
  • hadoop分布式環(huán)境搭建過(guò)程

    hadoop分布式環(huán)境搭建過(guò)程

    這篇文章主要介紹了hadoop分布式環(huán)境搭建過(guò)程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java中字符串根據(jù)寬度(像素)換行的問(wèn)題

    Java中字符串根據(jù)寬度(像素)換行的問(wèn)題

    這篇文章主要介紹了Java中字符串根據(jù)寬度(像素)換行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java項(xiàng)目打包部署之部署jar包和war包

    Java項(xiàng)目打包部署之部署jar包和war包

    我們?cè)陂_(kāi)發(fā)環(huán)境部署項(xiàng)目一般通過(guò)ideal將項(xiàng)目打包成包,然后連接linux服務(wù)器,這篇文章主要給大家介紹了關(guān)于Java項(xiàng)目打包部署之部署jar包和war包的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • 從零開(kāi)始搭建springboot+springcloud+mybatis本地項(xiàng)目全過(guò)程(圖解)

    從零開(kāi)始搭建springboot+springcloud+mybatis本地項(xiàng)目全過(guò)程(圖解)

    這篇文章主要介紹了從零開(kāi)始搭建springboot+springcloud+mybatis本地項(xiàng)目全過(guò)程(圖解),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 字節(jié)二面SpringBoot可以同時(shí)處理多少請(qǐng)求

    字節(jié)二面SpringBoot可以同時(shí)處理多少請(qǐng)求

    這篇文章主要為大家介紹了字節(jié)二面之SpringBoot可以同時(shí)處理多少請(qǐng)求面試分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論