我得到了以下场景:
我正在将传统应用程序迁移到基于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文件中的许可配置不依赖于请求是否包含持有者令牌--但可能我错了?