【发布时间】:2020-10-25 14:36:02
【问题描述】:
使用Webflux和Reactive Spring Security,如何通过注解进行后期处理来控制对方法的访问?
尝试一个非常基本的示例,我无法从 PostAuthorize 注释中获取值。例如
@GetMapping
@PostAuthorize("#email == authentication.principal.email")
public Flux<Project> sampleTest(final String email) {
log.info("email: {}", email);
return Flux.empty();
}
电子邮件将始终为空。如果我设置@PreAuthorize("hasRole('ADMIN')") 之类的东西,我的基本接线就可以工作,我会得到一个 403。
我可以使用以下助手提取身份验证:
public Mono<Authentication> getAuthentication() {
return ReactiveSecurityContextHolder.getContext()
.map(SecurityContext::getAuthentication)
.flatMap(Mono::just);
}
【问题讨论】:
标签: spring-boot spring-security reactive