nineinchnick / trino-openapi

Trino connectors for accessing APIs with an OpenAPI spec
Apache License 2.0
22 stars 3 forks source link

oauth token generation issue #88

Open nmkarvekar opened 2 months ago

nmkarvekar commented 2 months ago

Hi,

For below openapi configuration:


connector.name=openapi
spec-location=/home/test/etc/catalog/test.yaml
base-uri=https://test.api.com/search
authentication.type=oauth
authentication.scheme=bearer
openApi.http-client.log.enabled=true
openApi.http-client.log.path=logs1
authentication.token-endpoint=https://token.api.com/token
authentication.client-id=1111111111111
authentication.client-secret=xxxxxxxxxxxx
authentication.grant-type=client_credentials

I see below error:

io.trino.spi.TrinoException: Response code for getRows request was not 200: 401
    at pl.net.was.OpenApiClient$JsonResponseHandler.handle(OpenApiClient.java:422)
    at pl.net.was.OpenApiClient$JsonResponseHandler.handle(OpenApiClient.java:389)
    at io.airlift.http.client.jetty.JettyHttpClient.doExecute(JettyHttpClient.java:739)
    at io.airlift.http.client.jetty.JettyHttpClient.execute(JettyHttpClient.java:646)
    at pl.net.was.OpenApiClient.makeRequest(OpenApiClient.java:189)
    at pl.net.was.OpenApiClient.getRows(OpenApiClient.java:135)
    at pl.net.was.OpenApiRecordSetProvider.getRecordSet(OpenApiRecordSetProvider.java:75)
    at io.trino.split.RecordPageSourceProvider.createPageSource(RecordPageSourceProvider.java:50)
    at io.trino.split.PageSourceManager.createPageSource(PageSourceManager.java:61)
    at io.trino.operator.TableScanOperator.getOutput(TableScanOperator.java:263)
    at io.trino.operator.Driver.processInternal(Driver.java:398)
    at io.trino.operator.Driver.lambda$process$8(Driver.java:301)
    at io.trino.operator.Driver.tryWithLock(Driver.java:704)
    at io.trino.operator.Driver.process(Driver.java:293)
    at io.trino.operator.Driver.processForDuration(Driver.java:264)
    at io.trino.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:887)
    at io.trino.execution.executor.dedicated.SplitProcessor.run(SplitProcessor.java:76)
    at io.trino.execution.executor.dedicated.TaskEntry$VersionEmbedderBridge.lambda$run$0(TaskEntry.java:191)
    at io.trino.$gen.Trino_439____20240417_065109_2.run(Unknown Source)
    at io.trino.execution.executor.dedicated.TaskEntry$VersionEmbedderBridge.run(TaskEntry.java:192)
    at io.trino.execution.executor.scheduler.FairScheduler.runTask(FairScheduler.java:174)
    at io.trino.execution.executor.scheduler.FairScheduler.lambda$submit$0(FairScheduler.java:161)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
    at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
    at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:76)
    at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.IllegalArgumentException: Jwt is not in the form of Header.Payload.Signature with two dots and 3 sections
nineinchnick commented 2 months ago

I need to be able to reproduce this, is the API you're testing with available publicly?