如何无需@Authenticated注解认证所有REST端点及Drools文件端点?
统一认证Drools相关REST端点的方案
完全可以通过Quarkus的全局安全配置实现,无需给每个端点手动添加@Authenticated注解。只需在你的application.yaml中添加HTTP安全权限规则,就能对指定路径下的所有端点强制要求OIDC认证。
具体配置修改
更新你的application.yaml,添加quarkus.http.auth.permission节点来定义安全约束:
quarkus: oidc: auth-server-url: '${AUTH_SERVER_URL}' client-id: '${CLIENT_ID}' application-type: service http: auth: permission: # 针对Drools端点的认证规则 drools-protected: paths: "/drools/*" # 替换为你实际的Drools端点路径(如/kie/*、/rules/*等) policy: authenticated # 可选:如果需要保留其他未标注端点的公开访问权限,添加此规则 public-access: paths: "/*" policy: permit
关键说明
- 路径匹配:
paths字段必须替换为Drools对应的实际REST端点路径,Quarkus支持通配符*匹配子路径。 - 规则优先级:Quarkus会优先匹配更具体的路径规则(比如
/drools/*比/*更具体),所以不会出现规则冲突。 - 注解兼容:已添加
@Authenticated注解的端点不受影响,注解的安全规则优先级高于配置文件中的全局规则。 - 认证策略:
policy: authenticated表示访问该路径下的端点必须通过OIDC认证,若需要角色授权可改为roles("指定角色名")。
内容的提问来源于stack exchange,提问作者parmeshwar chavan
相关产品推荐
相关产品推荐

