[ https://issues.apache.org/jira/browse/CAMEL-14512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Volodin reassigned CAMEL-14512: -------------------------------------- Assignee: Dmitry Volodin > Allow reference to custom ClientInterceptor or Producer to customize > authentication > ----------------------------------------------------------------------------------- > > Key: CAMEL-14512 > URL: https://issues.apache.org/jira/browse/CAMEL-14512 > Project: Camel > Issue Type: Wish > Components: camel-grpc > Environment: * Java 11 > * SpringBoot 2.1.5.RELEASE > * CamelĀ 3.0.0-M2 > * Camel-Grpc-StarterĀ 3.0.0-M2 > Reporter: Philipp > Assignee: Dmitry Volodin > Priority: Minor > > The [GRPC > component|https://github.com/apache/camel/blob/master/components/camel-grpc/src/main/docs/grpc-component.adoc] > does currently not offer the possibility to intercept the connection > establishment against the gRPC server out of the box. > This prevents to add custom authentication to the channel/connection setup. > And since the gRPC component does not offer this custom implementation out of > the box, the currently only solution is: > * Implement a custom {{GrpcComponent}} > * Implement a custom {{GrpcEndpoint}} > * Implement a custom {{GrpcProducer}} or {{DefaultAsyncProducer}} > ** Override the {{doStart()}} method > ** Instantiate the {{Channel}} > ** Add a custom {{ClientInterceptor}} and override the {{interceptCall()}} > method > ** Add headers to the metadata of the prepared call > Even though there are the properties {{authenticationType=JWT}}, > {{jwtSecret}}, {{jwtIssuer}} and so on, these arguments only allow constant > strings. Therefore, no retrieval of OAuth tokens (for example) during the > runtime is possible, but everything would have to be hard-coded. > The [AHC-WS > component|https://github.com/apache/camel/blob/master/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc] > in contrast, offers this possibility by implementing a custom > {{AsyncHttpClient}} and pointing to it via the > {{camel.component.ahc-ws.client}} property in the {{application.yml}}. Like > this, the connection setup of the websocket can easily be intercepted by > overriding {{DefaultAsyncHttpClient.prepareGet()}} where OAuth tokens (for > example) can be passed and added to the handshake. -- This message was sent by Atlassian Jira (v8.3.4#803005)