You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建可与quarkus.http.auth配合使用的命名HttpSecurityPolicy

解决Quarkus自定义HttpSecurityPolicy命名并配置引用的问题

要让你的自定义HttpSecurityPolicy能通过名称mypolicy在配置中引用,只需给实现类加上**@Named注解**——之前无效大概率是导错了注解包,必须用javax.inject.Named下的注解。

修改后的完整代码如下:

import io.quarkus.security.identity.SecurityIdentity;
import io.quarkus.vertx.http.runtime.security.HttpSecurityPolicy;
import io.smallrye.mutiny.Uni;
import io.vertx.ext.web.RoutingContext;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named; // 导入正确的Named注解

@ApplicationScoped
@Named("mypolicy") // 指定策略名称
public class SecurityHandler implements HttpSecurityPolicy {

  @Override
  public Uni<CheckResult> checkPermission(
      final RoutingContext request,
      final Uni<SecurityIdentity> identity,
      final AuthorizationRequestContext requestContext) {
    // 你的权限校验逻辑实现
    return ...
  }
}

配置文件中即可正常引用该策略,还可补充路径、请求方法等匹配规则:

quarkus.http.auth.permission.mypermission.policy=mypolicy
quarkus.http.auth.permission.mypermission.paths=/api/**
quarkus.http.auth.permission.mypermission.methods=GET,POST

Quarkus的HttpSecurityProcessor会自动扫描带有@Named注解的HttpSecurityPolicy实现类,将其名称加入策略映射,完全不需要使用HttpSecurityPolicyBuildItem——那是扩展开发场景才会用到的API。

内容的提问来源于stack exchange,提问作者nil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:45:48