您的当前位置:首页正文

SaCheckPermission 权限校验注解

2024-11-26 来源:个人技术集锦

在若依框架(RuoYi)的前后端分离版4.8.x中,SaCheckPermission 注解用于权限校验。这个注解可以应用在方法上,以确保只有具有相应权限的用户才能访问该方法。

以下是如何在控制器中使用 SaCheckPermission 注解的示例:

import com.ruoyi.common.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
​
@RestController
@RequestMapping("/api")
public class MyController {
​
    @GetMapping("/test")
    @SaCheckPermission("user:view")
    public String test() {
        return "Hello, world!";
    }
}

在这个示例中,@SaCheckPermission("user:view") 注解表示只有具有 user:view 权限的用户才能访问 /api/test 接口。

若依框架的权限校验是基于 Spring Security 实现的,因此需要在项目中引入 Spring Security 相关依赖,并配置相应的安全策略。

以下是在 pom.xml 文件中添加 Spring Security 依赖的示例:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

然后,在 application.ymlapplication.properties 文件中配置 Spring Security 相关设置:

spring:
  security:
    user:
      name: admin
      password: 123456

最后,在项目中创建一个配置类,继承 WebSecurityConfigurerAdapter,并重写 configure 方法,配置权限校验策略:

import com.ruoyi.framework.web.config.SaReactiveConfigurer;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
​
@Configuration
@EnableWebFluxSecurity
public class SecurityConfig extends SaReactiveConfigurer {
​
    @Override
    protected void configure(ServerHttpSecurity http) throws Exception {
        super.configure(http);
        // 在这里配置权限校验策略
    }
}

这样,当用户尝试访问带有 SaCheckPermission 注解的方法时,若依框架会自动进行权限校验。如果用户具有相应的权限,则允许访问;否则,返回 403 Forbidden 错误。

显示全文