Skip to content

Commit 31bd283

Browse files
committed
Add support for OAuth authentication
1 parent 3c4ac9b commit 31bd283

File tree

5 files changed

+14
-0
lines changed

5 files changed

+14
-0
lines changed

src/Curl.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ mutable struct gRPCRequest
192192
keepalive = 60,
193193
max_send_message_length = 4 * 1024 * 1024,
194194
max_recieve_message_length = 4 * 1024 * 1024,
195+
token = nothing,
195196
)
196197
# Reduce number of available requests by one or block if its currently zero
197198
acquire(grpc.sem)
@@ -247,6 +248,9 @@ mutable struct gRPCRequest
247248
headers = curl_slist_append(headers, "te: trailers")
248249
headers =
249250
curl_slist_append(headers, "grpc-timeout: $(grpc_timeout_header_val(deadline))")
251+
if !isnothing(token)
252+
headers = curl_slist_append(headers, "Authorization: Bearer $(token)")
253+
end
250254
curl_easy_setopt(easy_handle, CURLOPT_HTTPHEADER, headers)
251255

252256
curl_easy_setopt(easy_handle, CURLOPT_TCP_KEEPALIVE, Clong(1))

src/ProtoBuf.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ function service_codegen_handler(io, t::ServiceType, ctx::Context)
2424
println(io, "\tkeepalive=60,")
2525
println(io, "\tmax_send_message_length = 4*1024*1024,")
2626
println(io, "\tmax_recieve_message_length = 4*1024*1024,")
27+
println(io, "\ttoken=nothing,")
2728
println(
2829
io,
2930
") = gRPCServiceClient{$request_type, $(rpc.request_stream), $response_type, $(rpc.response_stream)}(",
@@ -35,6 +36,7 @@ function service_codegen_handler(io, t::ServiceType, ctx::Context)
3536
println(io, "\tkeepalive=keepalive,")
3637
println(io, "\tmax_send_message_length=max_send_message_length,")
3738
println(io, "\tmax_recieve_message_length=max_recieve_message_length,")
39+
println(io, "\ttoken=token,")
3840
println(io, ")\n")
3941
end
4042
end

src/Streaming.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ function grpc_async_request(
187187
keepalive = client.keepalive,
188188
max_send_message_length = client.max_send_message_length,
189189
max_recieve_message_length = client.max_recieve_message_length,
190+
token = client.token,
190191
)
191192

192193
request_task = Threads.@spawn grpc_async_stream_request(req, request)
@@ -244,6 +245,7 @@ function grpc_async_request(
244245
keepalive = client.keepalive,
245246
max_send_message_length = client.max_send_message_length,
246247
max_recieve_message_length = client.max_recieve_message_length,
248+
token = client.token,
247249
)
248250

249251
response_task = Threads.@spawn grpc_async_stream_response(req, response)
@@ -295,6 +297,7 @@ function grpc_async_request(
295297
keepalive = client.keepalive,
296298
max_send_message_length = client.max_send_message_length,
297299
max_recieve_message_length = client.max_recieve_message_length,
300+
token = client.token,
298301
)
299302

300303
request_task = Threads.@spawn grpc_async_stream_request(req, request)

src/Unary.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ function grpc_async_request(
5959
keepalive = client.keepalive,
6060
max_send_message_length = client.max_send_message_length,
6161
max_recieve_message_length = client.max_recieve_message_length,
62+
token = client.token,
6263
)
6364

6465
req
@@ -129,6 +130,7 @@ function grpc_async_request(
129130
keepalive = client.keepalive,
130131
max_send_message_length = client.max_send_message_length,
131132
max_recieve_message_length = client.max_recieve_message_length,
133+
token = client.token,
132134
)
133135

134136
Threads.@spawn begin

src/gRPC.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ struct gRPCServiceClient{TRequest,SRequest,TResponse,SResponse}
5959
keepalive::Float64
6060
max_send_message_length::Int64
6161
max_recieve_message_length::Int64
62+
token::Union{Nothing,String}
6263

6364
function gRPCServiceClient{TRequest,SRequest,TResponse,SResponse}(
6465
host,
@@ -70,6 +71,7 @@ struct gRPCServiceClient{TRequest,SRequest,TResponse,SResponse}
7071
keepalive = 60,
7172
max_send_message_length = 4 * 1024 * 1024,
7273
max_recieve_message_length = 4 * 1024 * 1024,
74+
token = nothing,
7375
) where {TRequest<:Any,SRequest,TResponse<:Any,SResponse}
7476
new(
7577
grpc,
@@ -81,6 +83,7 @@ struct gRPCServiceClient{TRequest,SRequest,TResponse,SResponse}
8183
keepalive,
8284
max_send_message_length,
8385
max_recieve_message_length,
86+
token,
8487
)
8588
end
8689

0 commit comments

Comments
 (0)