Unë jam duke ekzekutuar një aplikacion për nisjen e pranverës dhe sapo kam filluar të integroj Hystrix nga spring-cloud-netflix. Unë jam duke përdorur @HystrixCommand për të përfunduar një telefonatë shërbim-në-shërbim të bërë me një klient të shtirur.
@HystrixCommand(fallbackMethod = "updateThingFallback")
def updateRemoteThing(thingResourceClient: ThingResourceClient, thing: Thing) {
thingResourceClient.updateThing(thing) // Call using feign client
}
Ky klient i shtirur përdor kontekstin e sigurisë së pranverës për të shtuar titujt e sigurisë në kërkesën që bën.
Problemi që kam është se kur ekzekutohet HystrixCommand, ai ekzekutohet në një thread të veçantë nga një grup thread Hystrix dhe kur kodi im përpiqet të hyjë në kontekstin e sigurisë së pranverës, ai nuk është i disponueshëm në fillin e ri.
Unë jam duke hyrë në kontekstin e sigurisë së pranverës si kjo:
SecurityContextHolder.getContext().getAuthentication();
Pyetja ime është, a ofron pranverë një mënyrë për të kaluar kontekstin e sigurisë së pranverës (dhe kontekstin e aplikacionit) te thread-ët Hystrix që ekzekutojnë komandat Hystrix?
SEMAPHORE
vsTHREAD
, vendi me të cilin kam probleme do të ishte ideal për THREAD: një telefonatë rrjeti drejt një shërbimi në distancë, që në kohën më të mirë nuk është shumë i shpejtë dhe shumë shpesh bomba plotësisht. Pra, mendoj se alternativa ime më e mirë është të ripunoj pak kodin për të kaluar auth-in si param? 02.04.2017