我得到了以下场景:

我正在将传统应用程序迁移到基于Quarkus的新应用程序.对于寻址传统API的路由,Quarkus作为代理处理.

要求是,所有指向传统API的路由都是允许的,而不是由Quarkus的OIDC判断进行判断,因为传统API有它自己的身份验证机制.

当向该特定路由发出请求时,它们会被正确地转发到传统API,而不会被401拒绝.

BUT:一旦对该特定路由的请求包含一个承载令牌,例如:"Beeller eyJhb..."在"Authorization"标题中,Quarkus OIDC使用401拒绝此请求.

如果我在报头的开头省略了"承载"(因为遗留API也可以处理这一点),那么就不会发生Quarkus OIDC判断,并且请求被转发.

我目前的解决方案是使用具有高优先级的RouteFilter,并删除Auth报头开头的"Beraer".因此,它不会触发Quarkus的OIDC判断.

但我更喜欢没有标题操作的更干净的解决方案,这使我有可能跳过特定路由的Quarkus OIDC判断.

我想知道这是不是Quarkus中的错误,它仍然判断承载令牌,也判断应用程序中允许的路由.属性如下:

quarkus.http.auth.permission.permit1.paths=/legacyapi/*
quarkus.http.auth.permission.permit1.policy=permit
quarkus.http.auth.permission.permit1.methods=GET,POST,PUT,DELETE,PATCH,HEAD

我try 了这么多方法来使用过滤器和拦截器绕过OIDC判断,但没有找到一种方法来避免在调用我的过滤器/拦截器之前启动OIDC判断.

有没有人能给我一个有用的提示,让我绕过OIDC的判断,找到一条特定的路径?

我当前使用的是Quarkus版本:2.16.7.

我希望应用程序.Properties文件中的许可配置不依赖于请求是否包含持有者令牌--但可能我错了?

推荐答案

多亏了@iabughosh和@SergeyBeryozkin的帮助,问题才得以解决 通过设置属性:quarkus.http.auth.proactivefalse,我允许的路径不再被拒绝-谢谢

Java相关问答推荐

如何在Spring Security中设置CustomLogin路径?

Java自定义ThreadPool—暂停任务提交并取消当前排队任务

屏蔽字母数字代码的Java正则表达式

在spring—data中自动发现native—sql查询期间遇到重复的SQL别名[id]

取消按钮,但没有任何操作方法引发和异常

有没有一种方法使保持活动设置专用于java.net.http.HttpClient的一个实例

连接Quarkus中的两个异步操作

使用传递的参数构造异常的Mockito-doThrow(或thenThrow)

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

Jakarta CDI强制bean构造/注册遗留事件侦听器

如何从错误通道回复网关,使其不会挂起

在Spring终结点中,是否可以同时以大写和小写形式指定枚举常量?

Spring-Boot Kafka应用程序到GraalVM本机映像-找不到org.apache.kafka.streams.processor.internals.DefaultKafkaClientSupplier

如何在不删除Java中已有内容的情况下覆盖文件内容?

Java中不兼容的泛型类型

无法使用Open WebStart Java 8运行jnlp

Java中的一个错误';s stdlib SocksSocketImpl?

如何正确使用java.time类?

关于正则表达式的一个特定问题,该问题与固定宽度负向后看有关

JAVA 正则表达式识别字符串string或字符串内的字符char