0

我创建了一个 quarkus 应用程序,该应用程序使用我的其他团队创建的其他自定义库来验证使用 quarkus OIDC 的 oauth 访问令牌。当我使用 @Authentication 注释时,即使我传递了过期的令牌,也不会发生任何事情。当我深入研究该库时,我发现其他团队创建了一个优先级为 1000 的自定义 ContainerRequestFilter 过滤器,因为这可能是此身份验证注释不起作用。

如果这是原因,那么如何在不更改库代码的情况下重置 quarkus OIDC @Authentication 注释优先级。

此外,我尝试创建自己的过滤器,但不知道如何添加 OIDC 身份验证过滤器链,以便进行 OIDC 身份验证。

这是另一个团队的图书馆代码:

@Priority(2000)
static class IdentityAndAccessManagementFilter implements ContainerRequestFilter {
  

    public void filter(ContainerRequestContext context) {
        SecurityContext sc = context.getSecurityContext();
        if (sc == null) {
            context.abortWith(Response.status(Status.UNAUTHORIZED).build());
        } else {
            SecurityPrincipal principal = (SecurityPrincipal)sc.getUserPrincipal();

            try {
                // doing some validation
            } catch (AccessControlException var5) {
                context.abortWith(Response.status(Status.FORBIDDEN.getStatusCode(),var5.getMessage()).build());
            }

        }
    }
}
4

0 回答 0