spring-security 方法访问限制,权限控制

本文详细介绍了Spring Security进行权限控制的各种方式,包括在`spring-security.xml`中配置拦截URL,启用JSR-250注解,使用`@RolesAllowed`,`@PermitAll`,`@DenyAll`,`@Secured`以及表达式控制的注解。同时讲解了如何在页面端利用Spring Security的标签库进行权限判断。
摘要由CSDN通过智能技术生成

如果权限不足,不能访问某个方法或者页面,会报403错误。

不同方式,方法/页面

  • 在spring-secrity.xml中直接配置

       <security:intercept-url pattern="/user/**" access="ROLE_ADMIN,ROLE_admin"/>

        <security:intercept-url pattern="/role/**" access="ROLE_ADMIN,ROLE_admin"/>
        <security:intercept-url pattern="/**" access="ROLE_USER,ROLE_use,ROLE_ADMIN,ROLE_admin"/>

 security:intercept-url是从上往下继续执行,如果上边的pattern通过,下面更精细的pattern不会执行

比如:如果是    
        <security:intercept-url pattern="/**" access="ROLE_USER,ROLE_use,ROLE_ADMIN,ROLE_admin"/>

       <security:intercept-url pattern="/role/**" access="ROLE_ADMIN,ROLE_admin"/>

下面第二条"/role/**"的限制,就完全没有作用,非admin角色也可以访问该方法


 

  • JSR-250

  1. 在spring-security开启开启JSR-250

<!--在spring-security.xml中开启jsr250注解,security -->
   <security:global-method-security jsr250-annotations="enabled"/> 

    2.注解,加在方法名上

  • @RolesAllowed表示访问对应方法时所应该具有的角色

        @RolesAllowed({"USER", "ADMIN"}) 该方法只要具有"USER", "ADMIN"任意一种权限就可以访问。这里可以省
略前缀ROLE_,实际的权限可能是ROLE_ADMIN

  • @PermitAll表示允许所有的角色进行访问,也就是说不进行权限控制
  • @DenyAll是和PermitAll相反的,表示无论什么角色都不能访问

 

   //只允许有"ROLE_USER",或者"ROLE_user" 的角色访问
    @RolesAllowed({"USER","user"})
    @RequestMapping("/findAll")
    ModelAndView findAll(){
    //方法体...
    }

 

  •   Secured注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值