How to make request-bound data globally available in Ktor?Testing Post requests in KtorKtor: How to check authentication inside a route handler?How to pass data between various parts of the pipeline in Ktor (Kotlin)Get content of Ktor http requestHow to log requests in ktor http client?Spring Boot Kotlin Coroutine Caching of Http Callsktor client https request with self-signed certificateKtor: How can I validate JSON request?How do I correctly launch Kotlin coroutines to implement a Caffeine AsyncLoadingCache?Post request with an image using Ktor client

How would timezones work on a planet 100 times the size of our Earth

TEMPO: play a (mp3) sound in animated GIF/PDF/SVG

Can the ground attached to neutral fool a receptacle tester?

How can Radagast come across Gandalf and Thorin's company?

Plotting octahedron inside the sphere and sphere inside the cube

Is it okay for a ticket seller in the USA to refuse to give you your change, keep it for themselves and claim it's a tip?

Bitcoin successfully deducted on sender wallet but did not reach receiver wallet

how do companies get money from being listed publicly

How can I decide if my homebrew item should require attunement?

A continuous water "planet" ring around a star

How does "Te vas a cansar" mean "You're going to get tired"?

The cat ate your input again!

Why is the result of ('b'+'a'+ + 'a' + 'a').toLowerCase() 'banana'?

Boss wants me to ignore a software license

What ability do tools use?

Why is there a large performance impact when looping over an array over 240 elements?

What is an internal dimension/glue/muglue?

Simplification of numbers

How to remove ambiguity: "... lives in the city of H, the capital of the province of NS, WHERE the unemployment rate is ..."?

How to create events observer that only call when REST api dispatch events?

Is there a command to install basic applications on Ubuntu 16.04?

If a digital camera can be "hacked" in the ransomware sense, how best to protect it?

How does proof assistant organize knowledge?

On the Rømer experiments and the speed of light



How to make request-bound data globally available in Ktor?


Testing Post requests in KtorKtor: How to check authentication inside a route handler?How to pass data between various parts of the pipeline in Ktor (Kotlin)Get content of Ktor http requestHow to log requests in ktor http client?Spring Boot Kotlin Coroutine Caching of Http Callsktor client https request with self-signed certificateKtor: How can I validate JSON request?How do I correctly launch Kotlin coroutines to implement a Caffeine AsyncLoadingCache?Post request with an image using Ktor client






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I'm building a microservice in Ktor. While we are working within the application module, Ktor provides access to the call object which contains authorization data.



My problem is that I need to access the call object from a service-level class. In Spring, you would do this by accessing the SecurityContext which is globally available via a ThreadLocal. Ktor, being coroutine-driven, does not have that option.



Do I really need to pass down the call object through my service layer methods, or is there a way in Ktor to have some sort of "call context" object that you can access from anywhere?










share|improve this question
























  • It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

    – Moira
    Mar 27 at 9:32












  • The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

    – Alan47
    May 23 at 8:32

















0















I'm building a microservice in Ktor. While we are working within the application module, Ktor provides access to the call object which contains authorization data.



My problem is that I need to access the call object from a service-level class. In Spring, you would do this by accessing the SecurityContext which is globally available via a ThreadLocal. Ktor, being coroutine-driven, does not have that option.



Do I really need to pass down the call object through my service layer methods, or is there a way in Ktor to have some sort of "call context" object that you can access from anywhere?










share|improve this question
























  • It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

    – Moira
    Mar 27 at 9:32












  • The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

    – Alan47
    May 23 at 8:32













0












0








0








I'm building a microservice in Ktor. While we are working within the application module, Ktor provides access to the call object which contains authorization data.



My problem is that I need to access the call object from a service-level class. In Spring, you would do this by accessing the SecurityContext which is globally available via a ThreadLocal. Ktor, being coroutine-driven, does not have that option.



Do I really need to pass down the call object through my service layer methods, or is there a way in Ktor to have some sort of "call context" object that you can access from anywhere?










share|improve this question














I'm building a microservice in Ktor. While we are working within the application module, Ktor provides access to the call object which contains authorization data.



My problem is that I need to access the call object from a service-level class. In Spring, you would do this by accessing the SecurityContext which is globally available via a ThreadLocal. Ktor, being coroutine-driven, does not have that option.



Do I really need to pass down the call object through my service layer methods, or is there a way in Ktor to have some sort of "call context" object that you can access from anywhere?







kotlin kotlin-coroutines ktor






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 27 at 9:01









Alan47Alan47

2,1053 gold badges17 silver badges29 bronze badges




2,1053 gold badges17 silver badges29 bronze badges















  • It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

    – Moira
    Mar 27 at 9:32












  • The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

    – Alan47
    May 23 at 8:32

















  • It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

    – Moira
    Mar 27 at 9:32












  • The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

    – Alan47
    May 23 at 8:32
















It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

– Moira
Mar 27 at 9:32






It may be worth mentioning that coroutines do have a CoroutineContext which is basically just a map.

– Moira
Mar 27 at 9:32














The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

– Alan47
May 23 at 8:32





The problem with CoroutineContext is that it is easy to lose it along the way (e.g. when calling async). In all those places, the coroutine context must be passed along explicitly, which is easy to forget (the compiler won't complain). But I do agree, with some discipline, this is a solution.

– Alan47
May 23 at 8:32












0






active

oldest

votes










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55373266%2fhow-to-make-request-bound-data-globally-available-in-ktor%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes




Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.







Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55373266%2fhow-to-make-request-bound-data-globally-available-in-ktor%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해