Spring家族WebFlux框架学习: Spring Security——权限

李胤
2025-05-16 / 0 评论 / 9 阅读 / 正在检测是否收录...

创建spring security项目请自行百度搜索。

想要使用注解级的权限管理,也就是@PreAuthorize, @PostAuthorize, @PreFilter, 和@PostFilter这几个放在Controller和Service的方法上使用,需要预先添加一个配置,配置内容如下:

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity;

@Configuration
@EnableReactiveMethodSecurity() // 这个就是启用方法级注解的注释
public class MethodSecurityConfig {
}

以下是某一个Controller中使用方式,记住需要以Mono类型进行返回:

...
    @GetMapping
    @PreAuthorize("hasRole('ADMIN')")
    public Mono<List<UserInfo>> getUserInfoList(UserInfo user) {
        LambdaQueryWrapper<UserInfo> lqw = Wrappers.lambdaQuery(user);
        return Mono.just(userInfoService.getUserInfoList(lqw));
    }
...

在自定义的用户登录中设置角色,部分代码如下图

maqk7ngh.png

0

评论 (0)

取消