是否可以从 ServerWebExchange 检索角色?

问题描述 投票:0回答:1

我可以从

org.springframework.web.server.ServerWebExchange
实例检索主体名称。

exchange.getPrincipal().subscribe(principal -> /* do something with it */);

我也可以检索该委托人的角色吗?

java.security.Principal
类(与
UserDetails
不同)仅提供名称字符串 (
getName()
)

用例:假设我想编写一个

GatewayFilter
来考虑当前用户的角色并改变交换:

(exchange, chain) -> /* some filtering logic */
java spring-boot spring-security spring-webflux
1个回答
0
投票

将其转换为确实提供检索权限的方法的东西。就我而言,

Principal
实际上是
UsernamePasswordAuthenticationToken
,所以这样就可以了:

((UsernamePasswordAuthenticationToken) principal).getAuthorities()
© www.soinside.com 2019 - 2024. All rights reserved.