security - 我可以在 Quarkus 中静态访问 session 中的当前用户吗?

标签 security quarkus principal

我需要以静态方式访问当前用户(之前由ContainerRequestFilter设置),以避免在每个中传递@Context SecurityContext每个 Controller 的方法。

我想要实现一些在 Spring 中我会做的事情

SecurityContextHolder.getContext().getAuthentication();

除了在 Quarkus 中使用 Spring Security 之外,还有什么方法可以做到这一点吗?

最佳答案

解决方案是使用此依赖项

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-oidc</artifactId>
</dependency>

然后您可以操作 SecurityIdentity 实例以“使其静态”

@Startup
@ApplicationScoped
public class UserUtilsService {

@Inject
private SecurityIdentity securityIdentity;

private static SecurityIdentity instance;

/**
 * Gets the custom user.
 *
 * @return the custom user
 */
public static CustomUser getCustomUser() {
    return (CustomUser) instance.getPrincipal();
}

@PostConstruct
private void setUp() {
    instance = this.securityIdentity;
}

}

@StartUp 在应用程序启动时实例化 bean(而不是延迟)。

然后,您可以使用 UserUtilsService.getCustomUser(); 静态访问主体

关于security - 我可以在 Quarkus 中静态访问 session 中的当前用户吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71928135/

相关文章:

unit-testing - 如何覆盖 Quarkus 中一个 Unittest 的配置属性

spring - 如何使用 Spring 安全性和 Spring 安全性对象中的属性限制对 URL 的访问?

spring - Shiro 和 CAS 如何使用不同的域进行身份验证和授权?

jsr352 - Java EE Batch (JSR 352) 会成为 quarkus 的一部分吗?

java - 使用 quarkus 构建失败

java - JAVA中如何用WEBLOGIC获取登录用户?

security - 到 Amazon EC2 的 PostgreSQL SSH 隧道?

php readfile ('folder/subfolder' .$_GET ['userInput' ]) 安全问题?

asp.net-mvc-3 - Azure:Web 角色之间的安全性